這篇文章主要介紹了使用 js 簡(jiǎn)單的實(shí)現(xiàn) bind、call 、aplly代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
Function.prototype._call = function(obj,...arg){ var me = this; var k = Symbol("test"); //生成唯一的 key obj[k] = me; var result = obj[k](...arg); delete obj[k]; return result; } Function.prototype._apply = function(obj,arg){ var me = this; var k = Symbol("test"); //生成唯一的 key obj[k] = me; var result = obj[k](...arg); delete obj[k]; return result; } Function.prototype._bind = function(obj,...arg){ var me = this; return function(...args){ var param = [...arg,...args]; return me._apply(obj,param); } } var o1 = { info:"o1", print(){ console.log(arguments) console.log(this.info) } } var o2 = { info:"o2", print(){ console.log(arguments) console.log(this.info) } } var o3 = { info:"o3", print(){ console.log(arguments) console.log(this.info) } } o1.print._bind(o3,11)(44,66);
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com