我的用例是React,但这是一个JavaScript问题。
我想通过使用子类来扩展componentWillMount
的功能。我怎么能做到这一点?
class Super {
componentWillMount() {
doStuff()
}
}
class Sub extends Super {
componentWillMount() {
super() // this doesn't work
doMoreStuff()
}
}
答案 0 :(得分:3)
使用的语法是:
super.componentWillMount()
来自mdn:
super
关键字用于调用对象父级的函数。
super.prop
和super[expr]
表达式在类和对象文字中的任何方法定义中都有效。语法
super([arguments]); // calls the parent constructor. super.functionOnParent([arguments]);
演示:
class Super {
componentWillMount() {
console.log('parent')
}
}
class Sub extends Super {
componentWillMount() {
super.componentWillMount()
console.log('child')
}
}
new Sub().componentWillMount();
答案 1 :(得分:1)
来自反应文档:
那么继承怎么样? 在Facebook,我们在数千个组件中使用React,并且我们没有找到任何建议创建组件继承层次结构的用例。
道具和作曲为您提供所需的所有灵活性 以明确和安全的方式定制组件的外观和行为。 请记住,组件可以接受任意道具,包括 原始值,React元素或函数。
如果您想在组件之间重用非UI功能,我们 建议将其解压缩到一个单独的JavaScript模块中。该 组件可以导入它并使用该函数,对象或类, 没有扩展它。
https://facebook.github.io/react/docs/composition-vs-inheritance.html