【发布时间】:2015-05-25 14:14:33
【问题描述】:
定义一个实用函数来检查对象的原型链(在 Chrome 中),我得到了这个数组。
这样看来
[].__proto__ === Array.prototype // === [Symbol(Symbol.unscopables): Object]
我理解第一个相等。我不知道第三个术语是什么,虽然我听说 ES6 会有符号。
这个东西和Array.prototype一样吗?为什么会这样打印?
编辑:chrome://版本信息:
Google Chrome 40.0.2214.111 (Official Build)
Revision 6f7d3278c39ba2de437c55ae7e380c6b3641e94e-refs/branch-heads/2214@{#480}
OS Linux
Blink 537.36 (@189455)
JavaScript V8 3.30.33.16
【问题讨论】:
-
一个最小的例子是
console.log([].__proto__),它告诉你你正在使用的浏览器,可能是Chrome,现在在内部用新的符号类型定义了Array.__proto__。 -
是的。我错过了,因为我刚刚输入了
[].__proto__,它打印为 []。我猜控制台不会 console.log 它的结果。 -
在那个注释中,奇怪的是,在控制台中输入
{}会输出undefined并输入{x: 3}输出3。 -
"一个对象,其属性是不应包含在 with 语句中的对象属性的名称"
标签: javascript google-chrome prototype ecmascript-6