如何从 javascript 中的方法引用中检索 class?

How can I retrieve a class from a method reference in javascript?

我想这样做:

function call(method) {
    const object = // Retrieve the class that declares the method and then construct an instance dynamically.
    method.call(object) // So 'this' is bound to the instance.
}

call(MyClass.prototype.myMethod)
call(AnOtherClass.prototype.anOtherMethod)

我的目标是从依赖容器创建实例。这就是为什么该方法必须绑定到一个实例,该实例将具有 class.

所需的所有依赖项

如果不进行一些重组,您将无法自动执行此操作。如果是我,我会将 class 作为参数传递:

function call(theClass, method) {
  const instance = new theClass();
  method.call(instance);
}
call(MyClass, MyClass.prototype.myMethod)
call(AnOtherClass, AnOtherClass.prototype.anOtherMethod)

或者,您可以只传递第二个参数的原型方法名称:

function call(theClass, method) {
  const instance = new theClass();
  instance[method]();
}
call(MyClass, 'myMethod')
call(AnOtherClass, 'anOtherMethod')