美文网首页
javascript : this学习笔记

javascript : this学习笔记

作者: 嗯哼26 | 来源:发表于2016-11-22 18:17 被阅读0次
var name = "LW";
var nameObj ={
name : "Sara",
showName : function(){
alert(this.name);
},
waitShowName : function(){
setTimeout(this.showName, 1000);
}
};

nameObj.waitShowName();//结果:LW

这段代码的结果并不是预测中的Sara这是因为javascript中setTimeout、setInterval和匿名函数执行时对象是全局对象window所以在运行this.showName的时候,this指向了window,所以最后显示了window.name。

var name = "LW";
var nameObj ={
name : "Sara",
showName : function(){
alert(this.name);
},
waitShowName : function(){
var that=this;
setTimeout(that.showName(),1000);}};
nameObj.waitShowName();   //结果:Sara

不过我们可以通过var that =this把setTimeout的作用域定义在nameObj中。所以结果为Sara。

相关文章

网友评论

      本文标题:javascript : this学习笔记

      本文链接:https://www.haomeiwen.com/subject/nuqmpttx.html