在Javascript中,为什么Object.getPrototypeOf([1,2])返回一个空列表?

时间:2015-05-20 07:34:32

标签: javascript node.js google-chrome object prototype

在Chrome 42.0中,我使用myArray

var myArray = [1,2]分配了一个值

我希望Object.getPrototypeOf(myArray)会像这样(来自here的屏幕截图)..

picture1

但是,当我在REPL中评估代码时,我只得到一个空列表:

enter image description here

有没有人对此有任何想法?

1 个答案:

答案 0 :(得分:5)

因为控制台正试图为您提供最有用的代表性。它看到你传递给它的是一个数组(Array.isArray(Object.getPrototypeOf([1,2]))true),因此它使用其显示数组的机制显示它。由于原型数组是空的,因此您只看到[]

它对非数组对象也有同样的作用:

Object.getPrototypeOf({foo:"bar"})
=> Object {}

(我正在使用Chrome。)

游戏机对你传递的内容做了相当多的解释。有些解释并不总是有用的。例如:

var a = [];
=> undefined
a.foo = "bar";
=> "bar"
a
=> []

console.log(a)显示更有用的

[foo:"bar"]

,例如,具有非元素属性foo的数组,其值为"bar"

相关问题