gpt4 book ai didi

javascript - 在构造函数中保存扩展类的方法名称

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

我有三个类,其中两个扩展了第三个类。是否可以以某种方式(不同于手动)将扩展类的名称分配给 super 构造函数?

class Master {

constructor(options) {
this.methods = Object.getOwnPropertyNames( Master.prototype );
}

getMethods() {
return Object.getOwnPropertyNames( Master.prototype );
}

}

class SlaveOne extends Master {
constructor(options) {
super(options);
}
methodOne() {}
methodTwo() {}
}

class SlaveTwo extends Master {
constructor(options) {
super(options);
}
methodThree() {}
methodFour() {}
}

所以,我想要的是有方法或 this.methods大师类的作业,将:

  • 返回['constructor', 'methodOne', 'methodTwo']当调用 SlaveOne 的实例时;
  • 返回['constructor', 'methodThree', 'methodFour']当调用 SlaveTwo 的实例时;

我当前的代码将返回相同的 ['constructor', 'getMethods']当在 SlaveOne 的实例上调用时, SlaveTwoMaster 。有什么想法吗?

最佳答案

像这样的事情应该可以解决问题

class Master {

getMethods() {
return Object.getOwnPropertyNames( this.constructor.prototype );
}

}

class SlaveOne extends Master {
constructor(options) {
super(options);
}
methodOne() {}
methodTwo() {}
}

class SlaveTwo extends Master {
constructor(options) {
super(options);
}
methodThree() {}
methodFour() {}
}

console.log(new SlaveOne().getMethods(), new SlaveTwo().getMethods())

关于javascript - 在构造函数中保存扩展类的方法名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45722221/

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