javascript 链式作用域

var a=b=0; 
var object={ 
    a:'a', 
    b:'b', 
    c:function(){ return this.a; },  //function内可以访问到平级变量的值和外部的值。
    d:function(){ return this.b; } 
} 
alert(object.c()); //根据就近原则,显示的值为a。
var a=b=0;
var object={ 
    a:'a', 
    b:'b', 
    c:function(){ return this.a; },  //function内可以访问到平级变量的值和外部的值。
    d:function(){ 
            return function(){
                   return a;
            }
      }
}
alert(object.d()()); //值为0, window<---d<---function
var a=b=0;
var object={ 
    a:'a', 
    b:'b', 
    c:function(){ return this.a; },  //function内可以访问到平级变量的值和外部的值。
    d:function(){ 
    var that=this;
            return function(){
                   return that.a;
            }
      }
}
alert(object.d()()); //值为a

 

原文地址:https://www.cnblogs.com/BigIdiot/p/2881183.html