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

问题描述 投票:0回答:1

在 Chrome 42.0 中,我使用

myArray
,
var myArray = [1,2]

赋值

我希望

Object.getPrototypeOf(myArray)
会是这样的(截图来自这里)..

picture1

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

enter image description here

有人对此有什么想法吗?

javascript node.js google-chrome object prototype
1个回答
5
投票

因为控制台正在尝试为您提供您所要求的最有用的表示。它看到您传递给它的是一个数组(

Array.isArray(Object.getPrototypeOf([1,2]))
true
),因此它使用其显示数组的机制来显示它。由于所有数组继承的原型数组都是空的,所以你只会看到
[]

它对非数组对象做同样的事情:

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

(我正在使用 Chrome。)

控制台会对您传递给它们的内容进行相当多的解释。其中一些解释并不总是有用。示例:

var a = [];
=> 未定义
a.foo = "酒吧";
=>“酒吧”
A
=> []

console.log(a)
显示更有用

[富:“酒吧”]

例如,具有非元素属性

foo
的数组,其值为
"bar"

© www.soinside.com 2019 - 2024. All rights reserved.