数组的本质
什么是数组
- 数组是一个有序的有 length 的 hash,它的
__proto__
指向 Array.prototype。
数组与对象
Array 与 Object 的差别,Array 的共有属性 __proto__
里面有 push 等方法,而且还包含 Object 的 __proto__
。如果一个对象没有 Array 的共有属性 __proto__
里面的方法比如 push 方法,那么它就不是一个 Array。
比如var obj = {
0: 1,
1: 2,
2: 3,
length: 3
}
obj.push // undefined.
这个 obj 就不是一个数组,它只是一个对象。
JavaScript 里面的伪数组
JavaScript 里面只有一个伪数组 arguments。arguments 表示传给函数的参数。var f = function() {
console.log(arguments)
}
f()