【发布时间】:2021-10-19 11:43:22
【问题描述】:
我遇到了以下情况。我有一个父类和一个子类,其中有 2-2 个名称相同的方法 a 和 b。父方法 a 需要一个附加参数,该参数由另一个父方法 b 传递给它。但是,当尝试访问调用的 a 方法中的参数时,它是 undefined。
如果我在父级或子级中更改方法 a 的名称,我会得到预期的结果并传递参数。
我也明白父母和孩子的 a 方法都被调用了。但是,我不明白为什么无论如何都没有通过论点。我还想知道除了重命名方法之外,是否还有其他方法可以避免这种行为?
class Test {
constructor() {}
a(param1, param2) {
console.log('a in parent invoked')
console.log(param2)
}
b(param1) {
const param2 = 2
this.a(param1, param2)
}
}
class TestChild extends Test {
constructor() {
super()
}
a(param1) {
console.log('a in child invoked')
return super.a(param1)
}
b(param1) {
return super.b(param1)
}
}
const test = new TestChild()
test.b(1)
【问题讨论】:
-
TestChild方法a调用Test方法a一个参数...super.a(param1)- 你认为param2会从哪里来?
标签: javascript class inheritance arguments