利用apply实现bind的问题?

这段代码是《javascript设计模式与开发实践》中第二章关于实现bind方法的代码。
Function.prototype.bind = function (obj) {    var self = this;//保存调用的函数。
    return function(){       return self.apply(obj,arguments);
    }
  };  var obj = {    name:'seven'
  };  var func = function () {    console.log(this.name);
  }.bind(obj);
  func();
我不理解的是
bind(obj);
这句调用为什么没有直接执行func函数?
因为在他的实现中有一句
return self.apply(obj,arguments);
这句话不会执行函数么?
而是要等到func();的时候才执行console.log()


蓝山帝景
浏览 894回答 1
1回答

红糖糍粑

Function.prototype.bind = function (obj) {  var self = this;//保存调用的函数。   return function(){    return self.apply(obj,arguments);   } };bind方法返回的是一个带闭包的匿名函数啊。然后在func();时候再执行的这个匿名函数,里面的apply方法这一串方法
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript