因此,在尝试构建一些 js 类时,我遇到了一些知识差距,因为这是我第一次实现 OOP 和 ES6 构造函数。
我基本上有一个运行一个respond()方法的应用程序,当在"Emergency Event".
在此示例中,无论子类方法中声明了什么,派生自的所有子类都NuclearStrategy应该始终如此。如果那么除了 之外什么都不应该做。Appease the populationActionrespondToThreat()eventIsJustTest === trueAppease the population
这就是我正在实施的:
class NuclearStrategy {
constructor(props) {
this.eventOrigin = props.eventOrigin;
}
appeaseAllPopulation() {
console.log('✅ Appeasing the population');
}
respondToThreat({ eventIsJustTest }) {
this.appeaseAllPopulation();
if (eventIsJustTest) return; // I expect this to exit the function and ignore anything declared after <super.respondToThreat()>
}
}
class Action extends NuclearStrategy {
constructor(props) {
super(props)
}
respondToThreat(responseArgs) {
super.respondToThreat(responseArgs.eventIsJustTest); // <- I can't have this in my code
console.log(`✅ Playing alert siren`); // <- This shouldn't be executed
console.log(`✅ Launched ICBM nuke to enemy`) // <- Avoid also
}
}
new Action({ eventOrigin: 'East Qorea' }).respondToThreat({ eventIsJustTest: true });
这执行
✅ Appeasing the population
✅ Playing alert siren
✅ Launched ICBM nuke to enemy
应该只执行
✅ Appeasing the population
Action.respondToThreat这样,即使警报只是针对(RIP Earth) ,我也无法阻止核武器发射nuclear test。另外,我不能super在我的子类中进行任何调用super.respondToThreat(),该appeaseAllPopulation()行为应该默认执行,而无需调用它。
您对这个应用程序有什么建议吗?先感谢您。
红糖糍粑
守候你守候我
相关分类