从类而不是实例中获取非静态方法

时间:2017-11-11 19:36:36

标签: javascript

我正在开发一个JS库。

用户在某处将引用(不是实例!)传递给我的工厂对象之一。现在,我想检查这个类是否实现了某个接口。

如果我有一个实例,我可以很容易地检查它是否包含接口的方法,但是,我有一个类,并且不知道如何实例化它。是否还有一种方法可以检查(在运行时)类是否实现了所需的方法?

目前,我强制用户传递该类的实例,这有点烦人,因为我只需要该类。

1 个答案:

答案 0 :(得分:0)

类或多或少只是构造函数的语法糖。因此,类方法是构造函数的prototype属性的属性。所以你可以做到

typeof SomeClass.prototype.someMethod === 'function'

当然,只有在方法实际定义为"类方法"而不是在构造函数中创建。