this指针和他所处的位置没有任何关系。是在运行时确定的。
this始终指向调用这个函数的对象。
var obj = {
x: 10,
fn: function() {
function f() {
console.log(this); //Window
console.log(this.x); //undefined
}
f();
}
};
obj.fn();
函数f虽然是在obj.fn内部定义的,但是它仍然是一个普通的函数,this仍然指向window。更准确的一点是指向他的直接上级的对象。
总结:this指向调用该函数的对象