首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >新实例的默认原型是什么?

新实例的默认原型是什么?
EN

Stack Overflow用户
提问于 2013-07-24 18:34:07
回答 2查看 209关注 0票数 2

我不明白以下行为:

代码语言:javascript
运行
复制
var Foo = function () {};
var Bar = function () {};
Foo.prototype = Bar;
var foo = new Foo();
console.log(foo.prototype === Bar.prototype); // true, but why?

我在规格中找不到任何关于使用构造函数创建的对象上prototype属性的默认值的信息。(我确实找到了规范的这一部分,其中提到,对于函数,prototype属性默认为new Object(),但没有提到使用构造函数创建的对象。)

所以,我的问题是双重的:

使用构造函数创建的对象的prototype属性的默认值是什么?(它似乎是构造函数的prototype属性的prototype属性;例如,Foo.prototype.prototype)

在规范中,它是如何解释这种行为的?

EN

Stack Overflow用户

发布于 2013-07-24 19:11:23

构造对象的原型是构造函数的.prototype属性引用的对象。

因为foo.__proto__ === Bar,很明显是foo.__proto__.prototype = Bar.prototype

foo对象没有.prototype属性,它是在foo.__proto__中查找和发现的,因为对象的原型是一个具有prototype属性的函数对象,这就是您遗漏的内容。

票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17842122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档