📅  最后修改于: 2023-12-03 15:05:43.179000             🧑  作者: Mango
Underscore.js是现今最流行的JavaScript的工具库之一。它提供了很多可以提高JavaScript应用程序开发效率的函数和工具。
其中一个非常实用的函数是_.bound()
方法。
_.bound()
方法创建一个绑定了给定上下文对象的函数。当调用该函数时,this
指向指定的上下文对象。
_bound()
返回的函数在调用时会自动将第一个参数(this指针)绑定到上下文对象中,当然,也可以绑定其他的参数。
_.bind(func, object, *arguments)
func
(Function):要绑定的函数对象。object
(Object):执行上下文。arguments
(Objects):要绑定到函数的参数序列。var obj = {
value: 42,
printValue: function() {
console.log(this.value);
}
};
var obj2 = {
value: 100
};
var getValue = obj.printValue;
getValue(); // undefined
var boundFn = _.bind(obj.printValue, obj2);
boundFn(); // 100
在上面的例子中,我们有两个对象:obj和obj2。我们可以看到在第一个对象上有一个方法printValue()
用来输出对象的值。在我们的例子中,该函数无法正常运行,因为它内部的this
指针指向了undefined
。我们称之为默认上下文。
使用_.bound()
方法,我们可以创建一个新函数,将上下文对象绑定为obj2
,因此在调用新函数时,this.value
的值将为100。
_.bound()
方法是一个非常实用的工具,可以让我们方便地修改函数的上下文,使得我们可以在不改变函数本身的情况下,增强函数的可适用性。