为什么Array.prototype只在控制台中输出[]?

时间:2013-11-27 11:02:43

标签: javascript arrays google-chrome

String.prototype

String {}

Object.prototype

Object {}  

Boolean.prototype

Boolean {}

Array.prototype输出[],为什么不Array []或其他?发生了什么事?

1 个答案:

答案 0 :(得分:1)

我查看了ECMA规范和V8源代码,但我无法得到具体答案。

根据ECMA-262 spec,每个对象必须具有所有基本内部方法的算法,但是,所有对象不一定对这些方法使用相同的算法,这意味着输出将至少在实现中具体实现 [[GetPrototypeOf]]

的情况

因此,如果您在不同的浏览器中尝试相同的操作,您会注意到每个浏览器的输出略有不同。

Internet Explorer 11:

Array.prototype
[object Array]  []

String.prototype
[object String]  {length:0}

Object.prototype
[object Object]  {}

Boolean.prototype
[object Boolean]  {}

<强>火狐:

Array.prototype
[object Array]

String.prototype
[object String]

Object.prototype
[object Object]

Boolean.prototype
[object Boolean]

Chrome和Opera:

Array.prototype
[]

String.prototype
String {}

Object.prototype
Object {}

Boolean.prototype
Boolean {}