js中當call或者apply傳入的第一個參數是null/undefined時,js函數內執行的上下文環境是什么?


在js中我們都知道call/apply,還有比較少用的bind;傳入的第一個參數都是改變函數當前上下文對象;

call/apply區別在於傳的參數不同,一個是已逗號分隔字符串,一個以數組形式。而bind和call幾乎沒差別只是將值返回。

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

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

參考:https://www.cnblogs.com/leungUwah/p/6014079.html

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


免責聲明!

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



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