gpt4 book ai didi

javascript - 类拒绝继承值

转载 作者:太空宇宙 更新时间:2023-11-04 02:00:06 24 4
gpt4 key购买 nike

我正在尝试加载 XObject(extends Object)类,但是当我尝试记录其值时,它只是显示为 XObject {},即使在 util.inspect 编辑时也是如此。

xobject.js

class XObject extends Object {
constructor(opts) {
super(opts);
}

...

}

application.js

this.xobj = new XObject({ option1: "A", option2: "B" });
logger.debug(`XObject created`, `values = ${require("util").inspect(this.xobj)}`); // prints "DEBUG • XObject instantiated • values = XObject {}"

最佳答案

更新(2019 年 2 月):我将此作为 v8 bug 提交。 Neis on the Chromium 表示,这种行为是故意的;请参阅此处的讨论:v8 issue #8817

<小时/>

我最终找到了解决这个问题的方法。虽然 Jeff M 在评论中暗示这可能是 V8 错误,但它实际上是根据 ECMAScript 规范运行的。

主要的变化是我不再扩展Object

这是我得出的概念:(代码被大量精简和简化)

let inherit = { foo: "bar", baz: 4 };

class TestClass {
constructor() {
this.test = "thing";
// this = TestClass {
// test: "thing" }

Object.assign(this, inherit);
// this = TestClass {
// test: "thing",
// foo: "bar",
// baz: 4 }
}
}

关于javascript - 类拒绝继承值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46334217/

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