// 在普通函数中,函数的调用者是window对象,所以函数中的this指针指向的是window,通过访问this指针下的相关属性就是在访问全局变量
//this在对象中的指向是对象本身
// 事件函数中的this指向触发该事件的标签
//this在构造函数中是谁调用指向谁
// 在定时器中,this指向的是window对象,因为定时器时window下的一个方法,所以定时器调用执行是通过window进行的
function Demo() {
this.a = 12; // demo.a = 12
// 当代吗执行到这一行时,会驱动this指针执行,此时支行代码的总重调用者是demo对象,所以此时的this指向的就是demo对象(this的指向只有在被执行到时才能确定)
window.setInterval(this.show, 1000); // this == demo
}
Demo.prototype.show = function() {
// 当定时器被调用时,函数中的代码并没有被执行都,所以this指针暂时不明确指向是谁;而定时器始终到达,由定时器调用这个函数代码执行时,this指向才被确定;也就是定时器的调用zhe:window对象;
alert(this.a); // this == window undefined;
};
var demo = new Demo();