gpt4 book ai didi

javascript - 基于现有对象创建对象

转载 作者:行者123 更新时间:2023-12-03 11:53:57 26 4
gpt4 key购买 nike

我是原型(prototype)继承的新手,并且一直陷入一项简单的任务

我有这样的东西:

var test1 = {
clear : function () {
alert('hey');
}

}

var test2 = {
varB : 2

}

我想从 test1 扩展 test2。谁能给我一个方向吗?我应该仍然使用 Object.create,还是函数 + 调用方法?我在这里有点困惑。

我发现的每个例子都是基于扩展然后设置属性、方法等。但是我的对象已经在这里声明了。

谢谢!

最佳答案

在现代浏览器中,您可以使用Object.setPrototypeOf :

Object.setPrototypeOf(test2, test1);

目前没有其他(官方)方法可以更改现有对象的原型(prototype)。

如果您只是创建一个简单的对象,则可以使用Object.create :

var test2 = Object.create(test1);
test2.varB = 2; // or Object.assign(test2, {varB: 2});

如果您实际上不需要继承,请将对象与 Object.assign 合并将是一个选项:

Object.assign(test2, test1);

这只是将属性从 test1 复制到 test2。与继承不同,对 test1 的更改不会影响 test2

<小时/>

有关更多信息,我建议查看

关于javascript - 基于现有对象创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25689007/

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