【发布时间】:2017-04-16 16:44:04
【问题描述】:
在 Google Chrom 的 javascript 中,对象有一个名为 __proto__ 的属性,它指向它们的原型(或父)对象。
var foo = {};
console.log(foo.__proto__ === Object.prototype); //returns true
但是,对于 Object 对象,这不正确。
console.log(Object.__proto__ === Object.prototype); //returns false
Object.__proto__ 属性似乎是一个空方法
> console.log(Object.__proto__.toString());
function () {}
除了作为关于依赖于标准机构之外的 javascript 功能的警告故事之外——Object.__proto__ 函数是什么?
【问题讨论】:
-
Object.__proto__ === Function.prototype...对象是一个函数。typeof Object === "function" -
您阅读过这份文件吗?它可能会澄清一些事情。 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
-
...和
__proto__已添加到 ECMAScript 6。 -
...
Function.prototype看起来是一个空函数的原因是内置构造函数的许多原型实际上是它们构造的对象的实例。例如,Array.isArray(Array.prototype); // true(或者可能不完全是一个实例,但它们与构造函数有某种关系。) -
@squint, ...和
Function.__proto__===Function.prototype
标签: javascript google-chrome prototype v8 proto