实施自定义绑定问题

时间:2019-02-23 00:57:20

标签: javascript

我正在尝试实现本机绑定功能。但是,当我尝试对其进行测试时,没有得到预期的输出。

有人可以告诉我我要去哪里了吗

Function.prototype.myBind =  function(...args) {
    const self = this;
    return function() {
        return self.apply(this, args);
    }
};

function demo() {
  return {
    name: 'James Bond',
    printName: function (args) {
      console.log(this.name, args);
    }
  };
}


const test = {
  name: 'Aqua Man'
};

console.log(demo().printName.myBind(test)('2020'));
// expected
console.log(demo().printName.bind(test)('2020'));

1 个答案:

答案 0 :(得分:3)

您需要像这样绑定参数:

Function.prototype.myBind =  function(binder) {
    const self = this;
    return function() {
        return self.apply(binder, arguments);
    }
};