javascript作用域和闭包

:当定义一个独立函数(级不绑定于任何对象)时,this关键字绑定于全局名称空间。作为一个最直接的结果,当在一个方法内创建一个内部函数时,内部函数的this关键字将绑定于全局名称空间,而不是绑定于该方法。为了解决这一问题,可以将包裹方法的this关键字简单地赋值给一个名为that的中间变量。

obj = {};
obj.method = function(){
var that = this;
this.counter = 0;

var count = function(){
that.counter += 1;
console.log(that.counter);
}

count();
count();
console.log(this.counter);
}
obj.method();

原文地址:https://www.cnblogs.com/cangowu/p/5036804.html