手机
当前位置:查字典教程网 >编程开发 >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语句

Java开发者都该知道的提高效率的工具

JavaScript中switch语句的用法详解

用JavaScript实现对话框的教程

Javascript特效:随机显示图片的源代码

灵活的理解JavaScript中的this指向

在HTML中插入JavaScript代码的示例

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

javascript实现模拟时钟的方法

精品推荐
分类导航