WEB前端

js的this关键字作用是什么,怎么使用

位置:首页 > WEB前端 > js教程,2013-07-24
常常在某些js函数相关代码看到this关键字,可不知道有什么用,更不知道怎么使用了,下面说说他的作用及使用,希望对学习js的朋友有些帮助代码如下:varname="TheWindow";varobje...

常常在某些js函数相关代码看到this关键字,可不知道有什么用,更不知道怎么使用了,下面说说他的作用及使用,希望对学习js的朋友有些帮助

代码如下:
var name = "The Window"; 
var object = { 
name : "My Object", 
getNameFunc : function(){ 
return function(){ 
return this.name; 
}; 

}; 


alert(object.getNameFunc()());原因是js的this是动态决定的,和你调用方式有直接关系。 


简单说如果你调用一个函数的时候使用“对象.函数名”的方式,那么this就是这个.(点)之前的对象,否则是window。 
比如你在调用object.getNameFunc()的时候getNameFunc函数体中的this是刚声明的object。如果你写成 
复制代码 代码如下:


var func = object.getNameFunc; 
func(); 


这时候getNameFunc函数体中的this是window,虽然是同一函数调用方式的不同决定了this的不同。 
同样的道理,object.getNameFunc()返回的是一个函数引用,加一个括号就是让函数执行。其实相当于如下代码 
复制代码 代码如下:


var func = object.getNameFunc(); 
alert( func() ); 


函数前没有“对象.”这种形式,所以执行函数时候this是window,结果就很明显了。 

TAGS:this关键字

猜你喜欢

NewHot