免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
console.log簡寫

     在JavaScript中,方法往往涉及到上下文,也就是this,因此往往不能直接引用,就拿最常見的console.log("info…")來說,避免書寫冗長的console,直接用log("info…")代替,不假思索的會想到如下語法:

1 var log = console.log;2 log("info…");

     很遺憾,運行報錯:TypeError: Illegal invocation。

     為啥呢?對于console.log("info…")而言,log方法在console對象上調(diào)用,因此log方法中的this指向console對象;而我們用log變量指向console.log方法,然后直接調(diào)用log方法,此時log方法的this指向的是window對象,上下文不一致,當(dāng)然會報錯了。

     此時我們可以用bind方法解決這個問題。bind方法允許手動傳入一個this,作為當(dāng)前方法的上下文,然后返回持有上下文的方法,例如:

1 var log = console.log.bind(console);2 log("info...");

     這樣就不會報錯了。

     但是,bind方法并不支持ie 8以及更低版本的瀏覽器,我們完全可以自己實現(xiàn)一個,很簡單。

1 Function.prototype.bind = Function.prototype.bind || function(context){2     var _this = this;3     4     return function(){5         _this.apply(context, arguments);6     };7 };

     核心通過apply方法實現(xiàn),閉包的經(jīng)典應(yīng)用。_this指向當(dāng)前方法,context指向當(dāng)前方法的上下文,二者均通過閉包訪問。

 

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
(譯) 一篇非常不錯的前端面試文章
深入淺出妙用 Javascript 中 apply、call、bind
如何面試前端工程師:Github很重要(轉(zhuǎn))
全面理解 JavaScript 中的 this – WEB前端開發(fā)
JavaScript 函數(shù)
前端整理——javaScript部分
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服