求解JavaScript如何去執(zhí)行下列代碼?
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());
2016-07-25
第一個輸出很明顯,是一層一層訪問到的值調(diào)用getfullname函數(shù),第二個,注意最后一行? console.log(test());
test后面加了括號,表示test不是一個簡單的字符串類型,可以把代碼轉(zhuǎn)換一下:把var test = obj.prop.getFullname;這一句換成
?getFullname:function(){
? ? return this.fullname;}
很明顯,這里return的是上面的var fullname ='John Doe';
一句話,test不是以obj為原型的
2016-07-25
Aurelio De Rosa
John Doe
函數(shù)閉包問題應(yīng)該