我不知道如何理解这个foo属性和数组。它看起来像foo属性被分配给数组,但我不认为它甚至是有效的数组语法。有人可以解释这个概念吗?
var arr = [];
arr[0] = 'a';
arr[1] = 'b';
arr.foo = 'c';
console.log(arr) // ['a','b',foo:'c'] This isn't valid array, but Chrome doesn't show any error.
console.log(arr.foo) // 'c'.
console.log(arr.length); // 2, not 3
答案 0 :(得分:6)
JavaScript数组是对象加上一些涉及length
属性的方法和一些魔法,所以是的,您可以为它们分配随机属性。
唐'吨
(如果你通过JSON运行这样的数组,那些额外的属性将会丢失。)
答案 1 :(得分:0)
http://speakingjs.com/es5/ch18.html
在这里,它很好地解释了它为什么会发生,以及其他一些你可能不常见的事情。