【发布时间】:2020-09-06 03:22:36
【问题描述】:
所以这是我能想到的最简单的问题版本。我理解它为什么会发生,但我不知道修复它的最佳方法。
class TestParent {
variableA = ""
constructor(data) {
for(const key in data) {
this[key] = data[key]
}
}
}
class Test extends TestParent {
variableB = ""
}
当我尝试这段代码时...
let test = new Test({"variableB": "something"})
// Expected {"variableA": "", "variableB": "something"}
// Got {"variableA": "", "variableB": ""}
现在,如果我从 Test 类中删除 variableB,那么代码就可以正常工作。从我的代码中收集到的是TestParent 的构造函数正在完成它的工作,但是一旦调用Test 的构造函数,它就会用存储在原型中的默认属性覆盖属性?
如何保存在TestParent 构造函数中完成的操作。我只需要在构造函数本身中定义它,而不是在类范围中定义属性?我是否缺少要添加到该属性的关键字?
【问题讨论】: