2014-05-09 42 views
1

考慮從node.js的REPL會話此摘錄:存放在一個javascript整數額外的屬性

> var a = 5; 
undefined 
> a.b = true; 
true 
> a.b; 
undefined 

意圖是額外的屬性存儲在a,而如果成功將使最後一行是true代替undefined。我怎樣才能做到這一點?

+1

@Bergi可以說沒有:知道這兩個問題是相同的需要JavaScript中的類型的知識,這個問題的提問者(如我)可能不知道。 – Trindaz

+0

你說得對,[爲什麼我不能在javascript中爲字符串對象添加屬性?](https://stackoverflow.com/questions/5201138/why-cant-i-add-properties-to-a-string -object-in-javascript/5201148#5201148)可能是更好的副本。即使我找不到它,我相信已經存在一個很好的經典問題。 – Bergi

回答

2

你不能那樣做。數字不是JavaScript中的對象。當你寫:

a.b = true; 

什麼情況是運行時自動實例化一個數字實例。這是一個對象。您將該對象上的「b」屬性設置爲true,然後將其遺忘。現在

,你可以這樣做:

var a = new Number(5); 
a.b = true; 
alert(a.b); 

,它會工作得很好。