JavaScript绑定功能实现

时间:2018-10-27 12:42:48

标签: javascript bind

我想为不支持绑定功能的浏览器创建JavaScript的绑定功能的Polyfill。任何人,请告诉我们如何在javascript中实现绑定功能。

3 个答案:

答案 0 :(得分:2)

以最简单的形式,bind只是apply的包装:

function bind(fn, thisObj) {
  return function() {
    return fn.apply(thisObj, arguments);
  }
}

答案 1 :(得分:0)

通过使用apply实现了绑定的基本功能。 我将此方法称为 myBind ,并将其添加到函数原型中,以便任何函数都可以访问它:

功能实现

Function.prototype.myBind = function() {
const callerFunction = this;
const [thisContext, ...args] = arguments;
return function() {
    return callerFunction.apply(thisContext, args);
}

}

用法: 可用作结合上下文和参数的本机绑定函数。

function testMyBind(favColor) {
   console.log(this.name, favColor); // Test, pink
}

const user = {
   name: 'Test'
}

const bindedFunction = testMyBind.myBind(user, 'pink');
bindedFunction();

答案 2 :(得分:0)

为了简化操作,同时使用现代JavaScript:

Function.prototype.bind = function () {
    return () => this.call(...arguments);
};

仅此而已。