var x = "haha";
var test = function(){
alert(this.x);
}
上述,则会弹出 haha的值。
因为在JavaScript的变量作用域里有一条规则“全局变量都是window对象的属性”。
所以当执行test();方法时,相当于执行window.test();
所以test方法中的this相当于指向了window对象,而window对象又有x变量。
即:this所在的函数是当作哪个方法的对象所调用的,即该对象就是this所引用的对象。
参考博客 http://www.cnblogs.com/rainman/archive/2009/05/03/1448392.html