最新文章专题视频专题问答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
当前位置: 首页 - 科技 - 知识百科 - 正文

通过一段代码简单说js中的this的使用_基础知识

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

通过一段代码简单说js中的this的使用_基础知识

通过一段代码简单说js中的this的使用_基础知识:今天有朋友说遇到如下代码,让我帮解释原因 代码如下: var name = The Window; var object = { name : My Object, getNameFunc : function(){ return function(){ return this.name; }; } }; alert(ob
推荐度:
导读通过一段代码简单说js中的this的使用_基础知识:今天有朋友说遇到如下代码,让我帮解释原因 代码如下: var name = The Window; var object = { name : My Object, getNameFunc : function(){ return function(){ return this.name; }; } }; alert(ob


今天有朋友说遇到如下代码,让我帮解释原因
代码如下:
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,结果就很明显了。

以后我会写一篇关于js this的文章,欢迎大家关注我的CSDN博客tt361。

文档

通过一段代码简单说js中的this的使用_基础知识

通过一段代码简单说js中的this的使用_基础知识:今天有朋友说遇到如下代码,让我帮解释原因 代码如下: var name = The Window; var object = { name : My Object, getNameFunc : function(){ return function(){ return this.name; }; } }; alert(ob
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top