gpt4 book ai didi

javascript - 有没有办法获取使用 {} 初始化的对象的原型(prototype)

转载 作者:太空宇宙 更新时间:2023-11-04 03:09:18 25 4
gpt4 key购买 nike

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

var foo = {};

有没有办法获取该对象的原型(prototype)?原型(prototype)很可能是未定义的。但实际上,我真正想要的只是 foo 可能具有的定义字段和函数/方法:

var foo = {

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

};

我正在尝试创建一个经典的继承系统,但 Object.create() 似乎需要代表原型(prototype)的参数,而不是其他任何东西。

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

如何在处理或不处理原型(prototype)的情况下将方法从一个对象添加到另一个对象?

最佳答案

当您使用 new 实例化对象时({} 与 new Object() 相同),原型(prototype)将成为其属性。这是原型(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!

我建议你去阅读 Google 的 Closure Library、PrototypeJS 和 Mootools Class 系统的代码,以激励你的努力。

希望这有帮助。

关于javascript - 有没有办法获取使用 {} 初始化的对象的原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28535508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com