JavaScript 函数bind() 方法允许对象从其他对象借用方法而无需复制。
用法:
func.bind(thisArg, arg1, ... argN)
在这里,func
是一个函数。
参数:
bind()
方法包含:
thisArg
- 提供的值this
参数为func
.如果使用创建绑定函数,则忽略它新的操作符。arg1, ... argN
(可选)- 在调用func
时添加到提供给绑定函数的参数的参数。
注意:
- 在
setTimeout
中使用thisArg
时,原始值将转换为对象。 - 如果未指定
thisArg
,则执行范围的this
被视为thisArg
。
返回:
- 返回具有指定 this 值和初始参数(如果提供)的给定函数的副本。
示例:使用 bind()
this.x = 1; // "this" here is the global window object in browser
const obj = {
x: 100,
getX: function () {
return this.x;
},
};
console.log(obj.getX()); // 100
const retrieveX = obj.getX;
// the function gets invoked at the global scope
console.log(retrieveX()); // 1
// Create a new function with 'this' bound to obj
// global variable 'x' with obj's property 'x' are two separate entities
const boundGetX = retrieveX.bind(obj);
console.log(boundGetX()); // 100
输出
100 1 100
一旦方法与对象分开传递到某个地方 - this
就会丢失。从函数创建绑定函数,使用原始对象,巧妙地解决了这个问题
相关用法
- JavaScript Function toString()用法及代码示例
- JavaScript Function apply()用法及代码示例
- JavaScript Function call()用法及代码示例
- JavaScript Function.displayName属性用法及代码示例
- JavaScript Function.name用法及代码示例
- JavaScript Function.length用法及代码示例
- JavaScript Function.length属性用法及代码示例
- JavaScript Object valueOf()用法及代码示例
- JavaScript Uint8Array.of()用法及代码示例
- JavaScript Number.isSafeInteger()用法及代码示例
- JavaScript Math abs()用法及代码示例
- JavaScript 正则 \xdd用法及代码示例
- JavaScript BigInt.prototype.toString()用法及代码示例
- JavaScript DataView.getInt16()用法及代码示例
- JavaScript Symbol.keyFor()用法及代码示例
- JavaScript handler.has()用法及代码示例
- JavaScript JSON.stringify()用法及代码示例
- JavaScript Symbol.split属性用法及代码示例
- JavaScript Date getYear()用法及代码示例
- JavaScript Date.UTC()用法及代码示例
注:本文由纯净天空筛选整理自 JavaScript Function bind()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。