亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

一個小改變, 不同的結果!

一個小改變, 不同的結果!

UncleKeith 2015-10-05 19:31:31
function box(){?? ?var age=100;?? ?return function(){?? ??? ?age++;?? ??? ?return age;?? ?};}var b=box();alert(b());alert(b());alert(b());b=null;alert(b());function box(){?? ?var age=100;?? ?return function(){?? ??? ?age++;?? ??? ?return age;?? ?};}alert(box()());alert(box()());box()=null;alert(box()());兩段代碼的區別就是是否給box()函數賦值給一個變量b。為什么結果會不一樣??!求解答
查看完整描述

2 回答

?
UncleKeith

TA貢獻3條經驗 獲得超0個贊

兩個結果都不會報錯哦


查看完整回答
反對 回復 2015-10-07
?
Y_du

TA貢獻43條經驗 獲得超5個贊

b=null;
alert(b());

這樣應該實現不了你要的效果。因為var b=box();在這你申明了b是box()的一個實例對象,你訪問b()的時候會去找box()這個函數,而你在b=null;這樣的賦值,再去調用b()時應該會報錯。這時候b只是一個參數而不是誰的實例對象。

查看完整回答
反對 回復 2015-10-05
  • UncleKeith
    UncleKeith
    兩個結果都不會報錯 但是結果卻不一樣
  • Y_du
    Y_du
    肯定不會報錯了,只是一個能正常顯示。一個會輸出未定義
  • 2 回答
  • 0 關注
  • 1509 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號