是否可以从 javascript 中的类中动态调用已声明的方法?

Is it possible to call an already declared method dynamically from within a class in javascript?

提问人:Quentin 提问时间:2/2/2022 更新时间:2/2/2022 访问量:24

问:

所以我有一个类,其中包含一些具有相同前缀的私有方法。我想做一个公开的 可以使用前缀和后缀调用它们的方法,其想法如下:

class MyClass {
   #privateMethod1(){
      console.log("Hello");
   }
   #privateMethod2(){
      console.log("world");
   }
   #privateMethod3(){
      console.log("!");
   }
   publicMethod(...names){
      names.forEach((name) => {
         this.["#privateMethod"+`${name}`]();
      });
   }
}
let test = new MyClass();
test.publicMethod(1,2,3); // Should display "Hello world!"

但这有可能吗?我尝试使用对象,但似乎没有任何效果

javascript oop 方法 动态 这个

评论

1赞 Pointy 2/2/2022
事实并非如此this[ ]this.[ ]
1赞 Pointy 2/2/2022
此外,无论如何都无法动态访问私有方法和字段。
1赞 Quentin 2/2/2022
啊,我不知道你不能动态访问私有方法。好吧,现在我知道了。谢谢!
1赞 Noam 2/2/2022
尽管您可以将私有属性定义为对象,但将方法定义为其成员,然后动态访问它们

答: 暂无答案