這段代碼是《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()
利用apply實現bind的問題?
藍山帝景
2018-10-16 13:18:26