栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

关于设置something.prototype .__ proto__的困惑

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

关于设置something.prototype .__ proto__的困惑

看看图上这个网页(mckoss.com),显示

prototype
constructor
__proto__
一个小的层次结构关系。图下的代码也很好地描述了这种关系。

当您具有一个function

base
并设置了所定义的功能对象的原型时,该语句会自动将of
Derived.prototype = newbase;
设置为
__proto__
(实际上是internal
[[prototype]]
),从而使Derived成为可以实例化对象的类。这似乎是定义派生类的一种更加符合标准的方法。
Derived.prototype``base.prototype

据我了解,这

__proto__
是访问
[[prototype]]
对象内部的一种非标准方式。它似乎得到了很好的支持,但是我不确定是否应该信任它。

无论如何,您的示例

Server.prototype.__proto__ =connect.HTTPServer.prototype;
似乎都是通过另一种方式进行推导的:首先
Server
通过定义构造函数和原型定义一个对象,然后
[[prototype]]
手动将内部连接起来以将其变形为从派生的类
HTTPServer

至于建议的替代方法,

Server.prototype =connect.HTTPServer.prototype;
:那是个坏主意。在这里,您将的原型设置
Server
为与的原型相同的对象
HTTPServer
。因此,您对
Server
类所做的任何更改都将直接反映在中
HTTPServer
,并且可以从的其他派生类访问
HTTPServer
。如果从两个派生的类
HTTPServer
试图定义同一成员,则可以对混乱进行想象。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/484777.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号