1.JavaScript高級程序設計》第二版中,寫到:“超時調用的代碼都是在全局作用域中執行的,因此函數中this的值在非嚴格模式下指向window對象,在嚴格模式下是undefined”。
2.我們說,setTimeout中有兩個this。第一,調用環境下的this,稱之為第一個this;第二,把延遲執行函數中的this稱之為第二個this;第一個this的指向是需要根據上下文來確定的,默認為window;第二個this就是指向window。
3.setTimeout中的匿名函數,沒有其它對象調用它。所以它的默認調用對象就是Window.