Javascript 有没有办法获得用{}初始化的对象的原型

Javascript 有没有办法获得用{}初始化的对象的原型,javascript,node.js,Javascript,Node.js,在JavaScript中,如果我像这样初始化一个对象: var foo = {}; 有没有办法得到那个物体的原型?原型很可能是未定义的。但实际上,我真正想要的只是foo可能具有的已定义字段和函数/方法: var foo = { field1: '', method1: function(){} }; 我试图创建一个经典的继承系统,但Object.create()似乎只需要表示原型的参数,而不需要其他参数 换句话说,我希望var bar={}从foo继承。但是bar和foo都是用{}初始化

在JavaScript中,如果我像这样初始化一个对象:

var foo = {};
有没有办法得到那个物体的原型?原型很可能是未定义的。但实际上,我真正想要的只是foo可能具有的已定义字段和函数/方法:

var foo = {

field1: '',
method1: function(){}

};
我试图创建一个经典的继承系统,但Object.create()似乎只需要表示原型的参数,而不需要其他参数

换句话说,我希望
var bar={}
从foo继承。但是bar和foo都是用
{}
初始化的对象

如何将方法从一个对象添加到另一个对象,无论是否处理原型?

您可以使用object.create()

您可以使用Object.create():

你可以试试这个:

你可以试试这个:


使用new({}与new object()相同)实例化对象时,原型将成为其属性。以下是原型继承的一个简单示例:

// Foo constructor
var Foo = function() {};
Foo.prototype = {
    field1: '',
    method1: function(){}
};

// bar constructor
var Bar = function(){
    Foo.call(this); // calling the parent ctor
};
Bar.prototype = Object.create(Foo.prototype); // inherit from Foo
Bar.prototype.constructor = Bar; // set the ctor just in case it was set by Foo

var bar_instance = new Bar();
bar_instance.method1(); // <-- it works!
//Foo构造函数
var Foo=函数(){};
Foo.prototype={
字段1:“”,
方法1:函数(){}
};
//条形构造器
var Bar=函数(){
调用(this);//调用父构造函数
};
Bar.prototype=Object.create(Foo.prototype);//从富继承
Bar.prototype.constructor=Bar;//设置ctor,以防它是由Foo设置的
var bar_instance=new bar();

bar_instance.method1();// 使用new({}与new object()相同)实例化对象时,原型将成为其属性。以下是原型继承的一个简单示例:

// Foo constructor
var Foo = function() {};
Foo.prototype = {
    field1: '',
    method1: function(){}
};

// bar constructor
var Bar = function(){
    Foo.call(this); // calling the parent ctor
};
Bar.prototype = Object.create(Foo.prototype); // inherit from Foo
Bar.prototype.constructor = Bar; // set the ctor just in case it was set by Foo

var bar_instance = new Bar();
bar_instance.method1(); // <-- it works!
//Foo构造函数
var Foo=函数(){};
Foo.prototype={
字段1:“”,
方法1:函数(){}
};
//条形构造器
var Bar=函数(){
调用(this);//调用父构造函数
};
Bar.prototype=Object.create(Foo.prototype);//从富继承
Bar.prototype.constructor=Bar;//设置ctor,以防它是由Foo设置的
var bar_instance=new bar();

bar_instance.method1();//如果您已经有两个构建对象,您可以将一个对象的属性复制到另一个对象。对象具有特定于实例的成员,可以使用工厂或构造函数以及可用于指定共享成员的原型链进行设置;通常是行为(函数)和不可变的默认值(字符串和数字等基本类型)。使用对象创建来继承实例特定成员和共享成员可能会导致一些意外行为(因为这表明对原型的误解),也许以下内容可以帮助您:如果您已经有两个构建对象,您只需将一个对象的属性复制到另一个对象即可。对象具有特定于实例的成员,可使用工厂或构造函数以及可用于指定共享成员的原型链进行设置;通常是行为(函数)和不可变的默认值(字符串和数字等基本类型)。使用对象创建来继承实例特定成员和共享成员可能会导致一些意外行为(因为这表明对原型的误解),也许以下内容可以帮助您:foo.constructor.prototype Object.prototype不是吗?改变这一点可能不是个好主意:foo.constructor.prototype Object.prototype不是吗?改变这一点可能不是个好主意:
// Foo constructor
var Foo = function() {};
Foo.prototype = {
    field1: '',
    method1: function(){}
};

// bar constructor
var Bar = function(){
    Foo.call(this); // calling the parent ctor
};
Bar.prototype = Object.create(Foo.prototype); // inherit from Foo
Bar.prototype.constructor = Bar; // set the ctor just in case it was set by Foo

var bar_instance = new Bar();
bar_instance.method1(); // <-- it works!