1.JavaScript高级程序设计》第二版中,写到:“超时调用的代码都是在全局作用域中执行的,因此函数中this的值在非严格模式下指向window对象,在严格模式下是undefined”。
2.我们说,setTimeout中有两个this。第一,调用环境下的this,称之为第一个this;第二,把延迟执行函数中的this称之为第二个this;第一个this的指向是需要根据上下文来确定的,默认为window;第二个this就是指向window。
3.setTimeout中的匿名函数,没有其它对象调用它。所以它的默认调用对象就是Window.