在这种情况下如何理解array.foo?

时间:2016-06-23 04:32:41

标签: javascript arrays

我不知道如何理解这个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

2 个答案:

答案 0 :(得分:6)

JavaScript数组对象加上一些涉及length属性的方法和一些魔法,所以是的,您可以为它们分配随机属性。

唐'吨

(如果你通过JSON运行这样的数组,那些额外的属性将会丢失。)

答案 1 :(得分:0)

http://speakingjs.com/es5/ch18.html

在这里,它很好地解释了它为什么会发生,以及其他一些你可能不常见的事情。