📜  Underscore.js _.bound() 方法(1)

📅  最后修改于: 2023-12-03 15:05:43.179000             🧑  作者: Mango

Underscore.js _.bound()方法

Underscore.js是现今最流行的JavaScript的工具库之一。它提供了很多可以提高JavaScript应用程序开发效率的函数和工具。

其中一个非常实用的函数是_.bound()方法。

1. 方法概述

_.bound() 方法创建一个绑定了给定上下文对象的函数。当调用该函数时,this指向指定的上下文对象。

_bound()返回的函数在调用时会自动将第一个参数(this指针)绑定到上下文对象中,当然,也可以绑定其他的参数。

2. 函数签名
_.bind(func, object, *arguments)
  • 参数
    • func (Function):要绑定的函数对象。
    • object (Object):执行上下文。
    • arguments (Objects):要绑定到函数的参数序列。
3. 用例
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。

4. 结论

_.bound()方法是一个非常实用的工具,可以让我们方便地修改函数的上下文,使得我们可以在不改变函数本身的情况下,增强函数的可适用性。