📅  最后修改于: 2023-12-03 15:01:48.419000             🧑  作者: Mango
在 JavaScript 中, 我们经常需要在一个较大的项目中面对大量的函数和对象, 这时我们需要使用函数和对象的继承和复用, 这也是 JavaScript 语言精粹之所在, bind() 方法就是其中的一种共用方式。
JavaScript中所有函数都包含bind()函数, 这个函数是创建一个绑定函数, 可以将函数绑定到特定的对象或摘要函数或芯片。
function.bind(thisArg[, arg1[, arg2[, ...]]])
参数说明
thisArg
(可选):当目标函数执行时使用的this 引用。arg1, arg2, ...
(可选):当目标函数被调用时添加到调用参数中的参数。
这个bind函数的返回值是一个新的函数,创建了特定的this绑定,并将指定参数放入绑定函数作为对其调用的第一部分参数。 bind()的返回函数同样可以被类似call和apply函数所调用,call和apply函数可在很多情况下具有相同的效果。
下面来看一段代码:
var value = 2;
var number = {
value: 1,
add: function(a, b) {
return this.value + a + b;
}
}
// 创建了一个新函数,这个函数接收两个预设参数,value是绑定到number上的这个值,而第二个参数是1
var bound = number.add.bind(number, 1);
console.log(bound(2)); //4
在这段代码中,我们先定义一个变量value,并且定义了一个number对象,它有一个属性value和一个方法add,this.value是对象的局部变量。 当我们调用boud()函数时,该函数的参数顺序是预设的1 2。我们得到的结果是2(在number.add()函数中,this.value是1)。
bind()是在编程中使用的一种通用函数,它可以将函数对象绑定到指定对象,并返回一个新的函数。bind()函数是 JavaScript Unit Testing Framework 的开发中尤其有用,使用它能大大减少你的代码工作量,同时也可以提高代码的可重用性和可扩展性。