码迷,mamicode.com
首页 > Windows程序 > 详细

函数内部的函数中的this都是指向window

时间:2015-01-28 12:39:16      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:

刚看到一个问题关于this的,

1   var name="the window";
2     var object={
3         name:"silence",
4         packname:function(){
5             return this.name;
6         }
7     }
8     console.log(object.packname());

一般而言,在Javascript中,this指向函数执行时的当前对象。这个this指object。输出结果为 silence

改变一下

1 var name="the window";
2     var object={
3         name:"silence",
4         packname:function(){
5             return this.name;
6         }
7     }
8     var show=object.packname;
9     console.log(show());

当没有明确的执行时的当前对象时,this指向全局对象window。

这里show=object.packname;show();这里show没有明确的指明执行对象,所以等同于 window.show();结果是 the window

再改一下

 1   var name="the window";
 2     var silence={
 3         name:"silence",
 4         packname:function(){
 5             return this.name;
 6         }
 7     }
 8     var seraph={
 9         name:"seraph",
10         packname:function(){
11             var fun=silence.packname;
12             return fun();
13         }
14     }
15     console.log(seraph.packname());

与2类似,fun();得到the window,fun()可以看出函数内部的函数指向window。我是这样理解的。

 

函数内部的函数中的this都是指向window

标签:

原文地址:http://www.cnblogs.com/MissBean/p/this.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!