关于数组中存放funciton的this指代问题
var n = [];
n.push(function(){alert(this)});
n[0](); //为什么这里的this指代是数组对象
var bb =n[0];
bb(); //这里的this指代的是window对象
------解决方案-------------------- n[0](); 是n 对象下"0" 属性
var bb =n[0];
bb 相当 于 window.bb
------解决方案--------------------function func() { alert(this);}
var n = [];
n.push( func);
n[0](); //为什么这里的this指代是数组对象
var bb = n[0];
bb(); //这里的this指代的是window对象
var obj = {func:func };
obj.func(); //现在this是object
应该这样理解吧.
n[0](); ===func.call(n);
bb(); ===func.call();
obj.func()===func.call(obj);
------解决方案--------------------var A = {
a : function(){
var $a = this;
alert($a);
}
}
A.a();
var $b = A.a;
$b();