this对象是在运行时基于函数的执行环境绑定的。
在全局函数中,this等于window,而当函数被作为某个对象的方法调用时,this等于那个对象;通俗点说,this总是指向调用者。
看下面的例子:
var i = 1;
function test(){
this.i = 10;
console.log(i); //10
}
test();
console.log(test.i); //undefined
console.log(i); //10
打印结果如注释中所示,因为在调用test函数的时候,调用者是全局对象window,因此this对象就指向了全局对象window,所以变量 i 始终都是绑定在全局对象上的,于是test.i 会打印出undefined。