我知道JavaScript中的數組只不過是一個對象。 當我這樣定義一個數組:如何複製數組行爲?
var array;
array = [ "a", "b", "c" ];
和運行
Object.keys(array);
我獲得以下數組:["0", "1", "2"]
。數組長度爲array
爲3
。
當添加一個屬性,如:
array["a"] = "d";
Object.keys()
正在返回["0", "1", "2", "a"]
,但array
陣列長度仍然3
。
但是當我添加這樣一個屬性:
array["3"] = "d";
的array
長度是現在4
。
如果array
只是另一個對象,當我像var myArray = {}
一樣從頭開始創建對象時,如何實現這種行爲?
[閱讀這篇來自Kangax的經典博客文章](http://perfectionkills.com/how-ecmascript-5-still-does-not-allow-to-subclass-an-array/) - 事實證明,你不能做你在問什麼。 – Pointy
[Javascript數組長度在對象數組上不正確]的可能重複(http://stackoverflow.com/questions/2528680/javascript-array-length-incorrect-on-array-of-objects) – epascarello