以下為引用的內容: <script language="javascript"> function aa(bb){ bb ++; } function zz(){ var cc = 1; aa(cc); ; } zz(); </script> |
彈出來的是1,意料之中
以下為引用的內容: <script language="javascript"> function aa(bb){ bb.setDate(bb.getDate() + 1); } function zz(){ var cc = new Date(); aa(cc); ; } zz(); </script> |
這個為什么cc會加上一天呢?
正確答案:
關鍵在與你的 var cc = new Date();這句話,這句話看似確實是定義了一個局部變量cc,但事實并非如此;事實是這里定義的CC是一個日期對象實例。為說明這一點,你可以用typeof(cc)檢查下類型,你會發現這里返回的是object類型。因此答案也就明了了。這里既然是object類型了,那此處調用的aa這個方法,這就和咋們經常使用的高級語言傳遞一個對象實例是一樣的意思了。
后話:你也可以去檢查下你alert出1的代碼,他返回的應該是值類型,而并非object類型。
上一篇 Css+Div布局小結