當call/apply傳的第一個參數為null/undefined的時候js函數內執行的上下文對象是什么呢?


如題;在js中我們都知道call/apply,還有比較少用的bind;傳入的第一個參數都是改變函數當前上下文對象;call/apply區別在於傳的參數不同,一個是已逗號分隔字符串,一個以數組形式。而bind和call幾乎沒差別只是將值返回。

可是當我們將null/undefined作為值傳進去的時候呢?居然得到的是window,當前js運行環境的全局對象。

這其實在es5中就有解釋的:傳入null/undefined的時候將執行js全局對象瀏覽器中是window,其他環境是global。這樣就解釋得通了。

 

 

參考:http://www.cnblogs.com/snandy/archive/2012/03/01/2373243.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM