gpt4 book ai didi

javascript - 在 ES6 中扩展类时是否可以定义回调

转载 作者:搜寻专家 更新时间:2023-11-01 04:43:18 24 4
gpt4 key购买 nike

基本上,如果我的库类被调用,我想做一些设置工作。例如:

class Child extends Parent { 
//methods
}

我想分配一个在扩展父类时调用的函数。我想以某种方式得到通知。在它即将发生之前(将要附加的方法作为参数),或者在将 Child 类作为参数之后。

我有一个我构建的 ES5 库,它使用工厂函数来创建新类,并且在该函数中我做了很多设置工作。我想做所有相同的事情,但使用 ES6 类语法的简单性,因此使用我的库的开发人员不需要考虑任何特殊的事情,并且可以根据更直接的类来思考。

任何帮助将不胜感激。

最佳答案

我认为@Mjh 想说的是你可以在父类中实现一个钩子(Hook)。扩展 Parent 类的类将能够覆盖该方法。如果他们不想用它做任何事情……也没关系。

https://jsbin.com/navijusuzo/1/edit?js,console

class Parent {

constructor(){
this.setup();
this.afterConstruct();
}

setup(){
// Do stuff, validate, init object
}

// HOOK to be overriden by classes that extend Parent
afterConstruct(){

}
}

class Child extends Parent {
constructor(){
super();
}

// Override: Implements Hook
afterConstruct(){
console.log('Child hooking')
}
}

new Parent();
new Child();

关于javascript - 在 ES6 中扩展类时是否可以定义回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33015646/

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