this始终指向当前方法的调用者
如果方法调用签名的左边有对象,则this指向该对象。如果无,则默认指向window.
function foo(){ console.log(this); } foo();// print window var bar = {name:"bar"}; bar.f1 = function(){ console.log(this); } bar.f1();// print bar's value.
this因事件加载方式而不同:
inline, 和microsoft model是指向Handler。所以运行时,handler的this指向了window对象。
通过apply/call方法在运行时改变this的值:
apply(this, array); call(this, param1, param2);
参考:
http://www.quirksmode.org/js/this.html