var arr = new Array();
console.log(arr.prototype); //undefined
console.log(arr.__proto__); //空数组
console.log(Array.prototype); //空数组
console.log(Array.__proto__); //function()
我知道在 new 的过程中,有三个步骤
(1) var arr = {};//初始化一个 arr 对象
(2) arr.__proto__ = Array.prototype;
(3) Array.call(arr); //回调函数构造 arr
然后在 ECMA 中可以查到 Array.prototype = new Object();
所以 arr.prototype undefined, arr.__proto__ == Array.prototype 我可以理解,但是为什么 Array.prototype 是一个空数组, Array.__proto__ 确是一个 function() 呢?
在 ECMA 中查到,Array 的构造函数是 function Array(){} ,是不是跟这个有关呢?
BIG阳