var fullname ='John Doe';
var obj ={
fullname:'Colin Ihrig',
prop:{
fullname:'Aurelio De Rosa',
getFullname:function(){
returnthis.fullname;
}
}
};
console.log(obj.prop.getFullname());
var test = obj.prop.getFullname;
console.log(test());
第一个输出很明显,是一层一层访问到的值调用getfullname函数,第二个,注意最后一行 console.log(test());
test后面加了括号,表示test不是一个简单的字符串类型,可以把代码转换一下:把var test = obj.prop.getFullname;这一句换成
getFullname:function(){
return this.fullname;}
很明显,这里return的是上面的var fullname ='John Doe';
一句话,test不是以obj为原型的
Aurelio De Rosa
John Doe
函数闭包问题应该