實際上在JS裏並不是如妳所想(我開始是這麽想的)那樣,對象或直接稱為object,實際上只是壹些映射對的集合,像Map,字典等概念。JS裏有大概7種類型(加上Symbol),數字、字符串、null、undefined、布爾、Symbol、對象。除對象以外的其他類型屬於原始類型,就是說它們比較單純,包含的東西比較少,基本上就是字面量所表示的那些(像C語言中的壹些類型,就是占那麽多空間,沒有其他的東西)。object基本上是壹些鍵值對的集合,屬於引用類型,即是有壹個名字去指向它來供別人使用的,就好像比較重的東西妳拿不動,而只是拿了張記錄東西所在地的紙條。所以當A對象裏嵌套了B對象,僅表示A裏面有壹個引用指向了B,並不是真正把B包含在A裏面,雖然看起來是這樣(尤其是從對象的字面量上來看),所以才會有所謂的深拷貝與淺拷貝。
有句話叫“JavaScript裏壹切皆對象”,是因為在很多情況下原始類型會被自動的轉為對象,而函數實際上也是對象,這樣這句話看起來就很有道理了。
說明對象的本質是為了正確地認識對象,因為這關系到後面的理解。