手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >你必须知道的Javascript知识点之"this指针"的应用
你必须知道的Javascript知识点之"this指针"的应用
摘要:很多人都知道this指针,这篇文章的主要目的是为了培训我们公司的新人。默认的this指针指向规则1this指针默认指向方法调用时为其指定的对...

很多人都知道this指针,这篇文章的主要目的是为了培训我们公司的新人。

默认的this指针指向

规则1

this指针默认指向方法调用时为其指定的对象,如:obj.fun(),fun方法体中的this指针指向obj。

复制代码 代码如下:

var user = { name: '段光伟' };

user.getName = function(){ return this.name; };

user.getName(); //返回‘段光伟'

复制代码 代码如下:

var user = { name: '段光伟' };

user.getName = function(){ return this.name; };

user.getName(); //返回‘段光伟'

window.name = '李妞妞';

window.getName = user.getName

window.getName(); //返回‘李妞妞'

getName(); //返回‘李妞妞'

规则2

如果在方法调用时没有为方法指定对象则this指针默认指向window,如:fun(),fun方法体中的this指针指向window。

复制代码 代码如下:

var fun = function(){

return this;

}

fun(); //返回window对象

规则3没有在方法体中的代码可以看作执行在一个匿名方法,根据规则2可以推论出其this指针指向window。

this //window对象

改变this指针的默认指向

使用apply

复制代码 代码如下:

var user = { name: '段光伟' };

user.hi= function(message){ return this.name+':'+message; };

window.name = '李妞妞'

user.hi('你好'); //输出‘段光伟:你好'

user.hi.apply(window, ['你好']); //输出‘李妞妞:你好'

使用call

复制代码 代码如下:

var user = { name: '段光伟' };

user.hi= function(message){ return this.name+':'+message; };

window.name = '李妞妞'

user.hi('你好'); //输出‘段光伟:你好'

user.hi.call(window, '你好'); //输出‘李妞妞:你好'

构造函数中的this指向

构造函数中的this指针默认指向执行正在构造的对象。

复制代码 代码如下:

var User = function(name){

this.name = name;

};

User.prototype.hi = function(){

return this.name;

};

var user = new User('段光伟');

user.hi(); //输出‘段光伟'

最后的小测试

猜猜最后的输出时什么?

复制代码 代码如下:

var User = function(name){

this.name = name;

};

User.prototype.hi = function(){

return this.name;

};

var user = new User('段光伟');

user.hi(); //输出‘段光伟'

var hi = user.hi;

hi(); //猜猜这里的输出

【你必须知道的Javascript知识点之"this指针"的应用】相关文章:

javascript实现炫酷的拖动分页

JavaScript中this关键字使用方法详解

JavaScript实现带标题的图片轮播特效

简介JavaScript中的setTime()方法的使用

JavaScript中search()方法的使用

在JavaScript中处理字符串之fontcolor()方法的使用

删除javascript所创建子节点的方法

JavaScript实现点击文字切换登录窗口的方法

Javascript中With语句用法实例

JavaScript中switch语句的用法详解

精品推荐
分类导航