2013-07-04 13 views
3

這是我一直認爲理所當然的事情,但想知道的推理。爲什麼JavaScript文字的行爲不同於非文字對應?

例如,我爲什麼可以這樣做:

var a = new Number(1); 
a.test = 'string'; 
console.log(a.test); 
>>> 'string' 

但是當我做

var a = 1; 
a.test = 'string'; 
console.log(a.test) 
>>> undefined 

爲什麼他們的行爲如此不同?

編輯:安德烈措辭的問題要好得多比我在這個線程:Javascript primitive types and corresponding objects

+3

我不知道該說什麼......我不明白你爲什麼會想到這些是相同的,在所有 – Esailija

+2

即使它不會導致錯誤你不能在JavaScript基元類型上添加屬性。由於a是原始類型,因此「添加」屬性不顯示。 – HMR

回答

相關問題