this在原则上总是指向调用该方法的对象:如
1.函数被作为某个对象的方法调用时,this等于那个对象
function test(){
alert(this.name);
}
var obj=new Object;
obj.name="lily";
obj.test=test;
obj.test(); //输出lily,这个时候this为obj
这也是使用this的一个原因,因为你不知道你的方法的会被哪个对象使用。
2.在全局函数中,this等于window,全局变量
var x = 1;
function test() {
alert(this.x);
}
test();//1
var x = 1;
function test() {
this.x = 0; //因为这里的x没有被定义为var x ,所以x为全局变量
}
test();
alert(x);//0
3.this会被apply()和call()改变