任何计算机语言都遵循最近法则,即在最近的执行环境范围内找到所需的值,就中断查找;this是指代当前执行环境上下文,方便程序应对在多种执行环境。
var x=11;
var obj={
"x":12,
"test":function(){
console.log(this.x);
}
}
obj.test();//12
var test1=obj.test;
test1();//11
obj是对象地址的引用,obj.test()执行时,里面的this指代obj这个对象地址。
test1所在执行环境是全局环境,浏览器中指代window,this指代window,所以test1中的this是window。故输出11.