【发布时间】:2015-02-16 06:14:25
【问题描述】:
在 JavaScript 中,如果我像这样初始化一个对象:
var foo = {};
有没有办法得到那个对象的原型?原型很可能是未定义的。但实际上,我真正想要的只是 foo 可能具有的已定义字段和函数/方法:
var foo = {
field1: '',
method1: function(){}
};
我正在尝试创建一个经典的继承系统,但 Object.create() 似乎只需要代表原型的参数。
换句话说,我希望var bar = {} 继承自 foo。但是 bar 和 foo 都是用 {} 初始化的对象。
如何在处理或不处理原型的情况下将方法从一个对象添加到另一个对象?
【问题讨论】:
-
如果您已经有两个构建对象,您可以将一个对象的属性复制到另一个对象。
-
对象有实例特定的成员,可以用工厂或构造函数设置,还有一个原型链可以用来指定共享成员;通常是行为(函数)和不可变的默认值(原始类型,如字符串和数字)。使用 Object create 来继承实例特定成员和共享成员可能会导致一些意外行为(因为它显示了对原型是什么的误解)也许以下内容可以帮助您:stackoverflow.com/a/16063711/1641941
标签: javascript node.js