码迷,mamicode.com
首页 > Web开发 > 详细

一段程序让你看懂JS中的this

时间:2020-03-31 10:41:27      阅读:64      评论:0      收藏:0      [点我收藏+]

标签:保存   全局   console   article   默认   tom   his   var   UNC   

看下面这段程序

var name = "Bob";  
  var nameObj ={  
      name : "Tom",  
      showName : function(){  
          console.log(this.name);  
      },  
      waitShowName : function(){  
          setTimeout(this.showName, 1000);  
      }  
 };  
nameObj.waitShowName();//Bob
nameObj.showName();//Tom

setTimeout函数的默认定义域是全局的,this代指调用他的那个对象,showName()函数是个调用对象为nameObj,故输出了Tom。若要让waitShowName输出Tom,你只需这样做:

    var name = "Bob";  
  var nameObj ={  
      name : "Tom",  
      showName : function(){  
          console.log(this.name);  
      },  

      waitShowName : function(){ 
      var that = this; //将this值保存。有些地方也将that写为self。
          setTimeout(function(){
              console.log(that.name);
          }, 1000);  
      }  
 };  
 
nameObj.waitShowName();

一段程序让你看懂JS中的this

标签:保存   全局   console   article   默认   tom   his   var   UNC   

原文地址:https://www.cnblogs.com/baimeishaoxia/p/12603342.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!