为了账号安全,请及时绑定邮箱和手机立即绑定

利用apply实现bind的问题?

利用apply实现bind的问题?

蓝山帝景 2018-10-16 13:18:26
这段代码是《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()
查看完整描述

1 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

Function.prototype.bind = function (obj) {  var self = this;//保存调用的函数。
  return function(){    return self.apply(obj,arguments);
  }
};

bind方法返回的是一个带闭包的匿名函数啊。

然后在func();时候再执行的这个匿名函数,里面的apply方法这一串方法

https://img1.sycdn.imooc.com//5bda95b50001afca06910443.jpg

查看完整回答
反对 回复 2018-11-01
  • 1 回答
  • 0 关注
  • 893 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号