gpt4 book ai didi

javascript - super 函数如何访问子类中的另一个 super 函数?

转载 作者:行者123 更新时间:2023-12-03 01:06:31 25 4
gpt4 key购买 nike

//parent class
module.exports = class Parser {
constructor() {}
tokenize(s) {}
fixDates(rule) {}

}


//child class
const Parser = require('./parser');
module.exports = class ParserEn extends Parser {
constructor() {}

run(str) {
super.tokenize(str.toLowerCase()).forEach(function (s) {

//here i want to acces to another function in the parent class
super.fixDates(rule); //I get this error: 'super' keyword unexpected here
});
}
}

嗨,正如您在上面的代码中看到的,我在父类中有两个函数,在子类中有一个函数。在子类内的 run 函数中,我可以使用关键字“super”访问标记化。但是,我也需要访问 fixDates 函数,但我确实收到此错误:“'super'关键字意外在这里”。如果有人帮助我那就太好了。提前致谢

最佳答案

您需要在子类的构造函数中调用super()。您还应该在 forEach 回调中使用箭头函数,以保留 this 上下文:

class Parser {
constructor() {}
tokenize(s) { return [...s]; }
fixDates(rule) { console.log(rule); }
}

class ParserEn extends Parser {
constructor() {
super();
}
run(str) {
super.tokenize(str.toLowerCase()).forEach((s) => {
super.fixDates(s);
});
}
}

const parseren = new ParserEn();
parseren.run('foo');

关于javascript - super 函数如何访问子类中的另一个 super 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52381247/

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