亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

利用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 關注
  • 919 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號