最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

你必须知道的Javascript知识点之"this指针"的应用_javascript技巧

来源:动视网 责编:小采 时间:2020-11-27 21:08:55
文档

你必须知道的Javascript知识点之"this指针"的应用_javascript技巧

你必须知道的Javascript知识点之"this指针"的应用_javascript技巧:很多人都知道this指针,这篇文章的主要目的是为了培训我们公司的新人。默认的this指针指向规则1this指针默认指向方法调用时为其指定的对象,如:obj.fun(),fun方法体中的this指针指向obj。 代码如下:var user = { name: '段光伟' };user.
推荐度:
导读你必须知道的Javascript知识点之"this指针"的应用_javascript技巧:很多人都知道this指针,这篇文章的主要目的是为了培训我们公司的新人。默认的this指针指向规则1this指针默认指向方法调用时为其指定的对象,如:obj.fun(),fun方法体中的this指针指向obj。 代码如下:var user = { name: '段光伟' };user.


很多人都知道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技巧:很多人都知道this指针,这篇文章的主要目的是为了培训我们公司的新人。默认的this指针指向规则1this指针默认指向方法调用时为其指定的对象,如:obj.fun(),fun方法体中的this指针指向obj。 代码如下:var user = { name: '段光伟' };user.
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top