美文网首页
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