首页 > 编程语言 > 详细

javascript 关于 this 作用域链

时间:2016-01-26 12:36:57      阅读:173      评论:0      收藏:0      [点我收藏+]

使用 function f() {}  或者 var f = function() {}  来定义的函数,this 是指向 全局对象

 
var  a = {
   b: 1,
   c: function(){
      function d() {
         alert(this.b);
      };
      d();
   }
};
 
javascript机制会在此函数里寻找b,发现此函数没有b,于是通过作用域链找到c方法,在里面也没有找到b,于是输出undefined(因为这个匿名函数不属于a对象,只不过是c方法属于a对象,所以作用域链是不会链接到a对象的,而是指向全局对象)
 
 
var  a = {
   b: 1,
   c: function(){
      var that = this;
      function d() {
         alert(that.b);
      };
      d();
   }
};
 
修改后输出  1 ,that缓存了c 方法的作用域链

javascript 关于 this 作用域链

原文:http://www.cnblogs.com/chuangweili/p/5159670.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!