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 ,请问是怎么解出的结果啊。谢谢
1 回答
已采纳
__innocence
TA贡献313条经验 获得超208个赞
第一个结果你应该知道吧,一层层取属性,obj.prop.getFullname(),
function() {
return this.fullname;
}
这个函数里面没有fullname这个属性,由于js函数闭包的存在,js向上一层寻找fullname,结果就是Aurelio De Rosa
第二个其实也很容易,但是要注意它和第一个有一个区别,就是那个括号,不加括号的情况就是:
var test = obj.prop.getFullname; 这一句可以换成:
var test = this.fullname;
this指的是上下文,和test在同一上下文环境的fullname,就是John Doe
望采纳!!
添加回答
举报
0/150
提交
取消