var name = 'tom';
function fn() {
this.name = 'jerry';
setTimeout(function () {
console.info(this == window);
console.info(this.name);
}, 1000);
}
window.fn();
var f = new fn();
我的理解:setTimeout中匿名函数this指向window,但是console.info(this.name)输出jerry。不太理解。
如果我换一种方式调用fn即var f = new fn();console.info(this.name)输出tom。以上。多谢。
var name = 'tom';
function fn() {
}
window.fn();//这里是window调用的,语句1把window的name赋值成了jerry,所以语句2打印jerry