欢迎大家访问我自己架的博客站点 码厩技术博客!
1、纯粹的函数调用。
2、作为对象方法的调用。
3、作为构造函数调用。
4、apply 调用。
this 在 javascript 中的一个关键字,用在方法中,表示调用该方法的对象。
这样一来,上面的几种用法都好解释了。
第一种情况:
var x = 1;
function test(){
this.x = 0;
}
test();
alert(x); //0
没有另指调用对象,所有代码执行者都是 window,this 自然就是 window。
this 用于引用全局变量。
第二种情况:
function test(){
alert(this.x);
}
var o = {};
o.x = 1;
o.m = test;
o.m(); // 1
这不解释,this 就是 o 了嘛。
第三种情况:
var x = 2;
function test(){
this.x = 1;
}
var o = new test();
alert(x); //2
做构造函数的时候,this 是指新对象,不再表示全局。
第四种情况:
var x = 0;
function test(){
alert(this.x);
}
var o={};
o.x = 1;
o.m = test;
o.m.apply(); //0
apply 函数调用,如果没有参数,就是说环境没有指定,即函数执行者是全局,window。
如果在apply中加入参数 o,表示执行者为对象 o,结果又不一样。
jQuery 中的 $(this) != this。
$ 函数返回的都是封装好的 jQuery 对象。