这是Javascript语言中的一个关键字。它表示函数运行时自动生成的内部对象,只能在函数内部使用。下面有四种情况。这个的用法有详细讨论,感兴趣的朋友可以了解一下。
这是Javascript语言中的一个关键字。它表示函数运行时自动生成的内部对象,只能在函数内部使用。比如复制代码如下:function test(){
this . x=1;
}该值将根据函数的用法而变化。但是有一个普遍的原则,这是指调用函数的对象。
在以下四种情况下将详细讨论它的用法。
情况一:纯粹的函数调用
这是函数最常见的用法,属于全局调用,所以这代表全局对象Global。
请看下面的代码。它的运行结果是1。复制代码如下:函数test(){
this . x=1;
alert(this . x);
}
test();//1为了证明这是一个全局对象,我对代码做了一些修改:复制代码如下:var x=1;
功能测试(){
alert(this . x);
}
test();//1运行结果还是1。再改一遍:复制代码如下:var x=1;
功能测试(){
this . x=0;
}
test();
警报(x);//0情况二:作为对象方法的调用
一个函数也可以作为一个对象的方法被调用,在这种情况下,这是指这个上级对象。复制代码如下:函数test(){
alert(this . x);
}
var o={ };
o . x=1;
o.m=测试;
o . m();//1情况三 作为构造函数调用
所谓构造函数就是通过这个函数生成一个新的对象。此时,这指的是这个新对象。复制代码如下:函数test(){
this . x=1;
}
var o=new test();
alert(o . x);//1运行结果为1。为了说明此时这不是一个全局对象,我对代码做了一些修改:复制代码如下:var x=2;
功能测试(){
this . x=1;
}
var o=new test();
警报(x);//2运行结果是2,说明全局变量x的值根本没变。
情况四 apply调用
Apply()是函数对象的一种方法。它的作用是改变函数的调用对象,它的第一个参数表示改变后的函数的调用对象。因此,这里指的是第一个参数。复制代码如下:var x=0;
功能测试(){
alert(this . x);
}
var o={ };
o . x=1;
o.m=测试;
o . m . apply();//0当apply()的参数为空时,默认调用全局对象。所以此时的运行结果是0,证明这指的是全局对象。
如果最后一行代码修改为复制代码如下:o . m . apply(o);//1运行结果变成1,证明这代表对象o。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。