代码改变世界

javascript中的this关键字

2008-09-25 13:53  wlstyle  阅读(273)  评论(0)    收藏  举报

在javascript中掌握this关键字的作用很重要,关键字this总是指向调用该方法的对象。比如

 

this point to call object

这里,关键字this用在对象的showColor方法中,在此环境中,this所指就是oCar。这段代码和下面的代码结果相同

 

Code with the same result

 

那用this的原因呢?因为在实例化的过程中,总不能确定coder会使用怎么样的变量名,使用了this.就可以在多个地方重用同一个函数。因为this指向调用方法的对象。考虑下面的例子。

 

example of this

在这里首先用this定义了函数showColor(),然后创建了两个对象(oCar1和oCar2),一个对象的color属性为yellow

另外一个属性为blue.两个对象有一个showColor属性,该属性指向showColor()函数。分别调用两个方法,一个输出yellow,而另外一个输出blue。因为这里的this关键字分别代表oCar1和oCar2。

引用对象的属性时,必须使用this关键字。而不能像这样

 

wrong code

如果不用对象或this关键字引用变量,javascript会把他看做是局部变量或者全局变量。然后该函数将查找名为color的局部变量或全局变量。但是这是找不到的所以会在警告框中弹出null。