gpt4 book ai didi

javascript - 使用类和构造函数将 JavaScript 对象基于另一个对象

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:58:45 25 4
gpt4 key购买 nike

ES6 引入了classextendsconstructor 等,使得基于原型(prototype)的继承变得非常简单。我想基于一个对象,通过类的构造函数在另一个对象上构造。在这种构造对象的新句法方式中,最简洁的方法是什么?

class A {
constructor(json) {
let base = JSON.parse(json);
this.prototype = base; // ????
}
}

我会使用extends,但由于对象是向下传递的,所以这里没有其他类定义

最佳答案

如果 json 每个实例都是唯一的,您应该更改 this 而不是 this.prototype。你可以使用 Object.assign为此:

class A {
constructor(json) {
let base = JSON.parse(json);
Object.assign(this, base);
}
}

Object.assign 将参数 1-n 中的 enumerableown 属性复制(通过引用)到参数 0 上。它是 native 实现的 _.assign (又名 _.extend)。

相反,如果您想对所有 实例使用单个json,则无需将其传递给构造函数。请参阅@Quentin Roy 的回答。

关于javascript - 使用类和构造函数将 JavaScript 对象基于另一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33098300/

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