:当定义一个独立函数(级不绑定于任何对象)时,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();
时间: 2024-10-10 02:55:31