小编jsn*_*man的帖子

setTimeout回调参数

让我们考虑一下这个JavaScript:

function Person(name) {
    this.name = name;
}

Person.prototype.showName = function() {
    alert(this.name);
}


var mike = new Person("mike");
//mike.showName();  

window.name = "window"; 
Run Code Online (Sandbox Code Playgroud)

我不明白行为的区别

setTimeout(mike.showName(), 5000);
Run Code Online (Sandbox Code Playgroud)

setTimeout(function(){
    mike.showName();
}, 5000);
Run Code Online (Sandbox Code Playgroud)

为什么行为不同?这真让我困惑.谢谢.

javascript

15
推荐指数
4
解决办法
7万
查看次数

为什么我的setTimeout函数返回"window"而不是我的对象的name属性?

function Person(name) {
this.name = name;
}

Person.prototype.showName = function() {
alert(this.name);
}


var mike = new Person("mike");
mike.showName();  


window.name = "window"; 
setTimeout(mike.showName, 5000);  
Run Code Online (Sandbox Code Playgroud)

什么时候

setTimeout(mike.showName, 5000)
Run Code Online (Sandbox Code Playgroud)

执行,为什么结果"窗口"?谢谢.

javascript

1
推荐指数
1
解决办法
254
查看次数

标签 统计

javascript ×2