首页 > 其他 > 详细

this 关键字理解

时间:2015-07-12 12:38:50      阅读:221      评论:0      收藏:0      [点我收藏+]

下面代码的运行结果是什么并做解释。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var fullname = ‘John Doe‘;
 
var obj = {
 
fullname: ‘Colin Ihrig‘,
 
prop: {
 
fullname: ‘Aurelio De Rosa‘,
 
getFullname: function() {
 
return this.fullname;
 
}}};
 
console.log(obj.prop.getFullname());
 
var test = obj.prop.getFullname;
 
console.log(test());

答案

代码输出:Aurelio De Rosa 和 John Doe

理由是,Javascript中关键字this所指代的函数上下文,取决于函数是怎样被调用的,而不是怎样被定义的

在第一个console.log(),getFullname()被作为obj.prop对象被调用。因此,当前的上下文指代后者,函数返回这个对 象的fullname属性。相反,当getFullname()被赋予test变量,当前的上下文指代全局对象window,这是因为test被隐式地作 为全局对象的属性。基于这一点,函数返回window的fullname,在本例中即为代码的第一行。

this 关键字理解

原文:http://www.cnblogs.com/xiaoheimao2008/p/4640726.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!