可以使用 JavaScript 中的属性访问器(getter)和方法调用器(caller)来动态定义方法名并调用方法。

假设有一个类 A,拥有一个成员方法 doSomething(),我们需要在另一个类 B 中动态定义方法名并调用 A 类的 doSomething() 方法。可以按照以下步骤进行:

  1. 在类 B 中定义一个属性访问器,该访问器根据需要动态生成方法名并返回方法名称的字符串。例如:
class B {
  get methodName() {
    return 'myDynamicMethodName';
  }
}
  1. 在类 B 中定义一个方法调用器,该调用器会根据动态生成的方法名调用 A 类的 doSomething() 方法。例如:
class B {
  ...
  myDynamicMethodName() {
    const a = new A();
    a.doSomething();
  }
  get methodName() {
    return 'myDynamicMethodName';
  }
  ...
}
  1. 现在我们可以在类 B 的实例中通过动态生成的方法名来调用 A 类的 doSomething() 方法了。例如:
const b = new B();
b.methodName(); // 这里会动态调用 myDynamicMethodName() 方法,进而调用 A 类的 doSomething() 方法。

需要注意的是,动态生成的方法名必须与类 B 中已定义的方法名不冲突,否则会导致方法调用失败。


原文地址: https://www.cveoy.top/t/topic/oZBy 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录