相关疑难解决方法(0)

检查构造函数是否在ES6中继承了另一个构造函数

我有一种情况需要检查构造函数(X)在其原型链中是否有另一个构造函数(Y)(或者是Y本身).

最快的方法可能是这样做(new X()) instanceof Y.在这种情况下,这不是一个选项,因为有问题的构造函数可能会在没有有效参数的情况下实例化.

我考虑的下一个方法是:

const doesInherit = (A, B) => {
  while (A) {
    if (A === B) return true;
    A = Object.getPrototypeOf(A);
  }

  return false;
}
Run Code Online (Sandbox Code Playgroud)

这是行得通的,但我无法摆脱这种感觉,即我错过了一些更简单的检查方法.有吗?

javascript prototypal-inheritance ecmascript-6

17
推荐指数
2
解决办法
7489
查看次数

通过给定的@decorators 获取所有类/构造函数

大家好,我想知道是否有可能获得所有给定装饰器 javascript/typescript 的类。

例如我有课

@mydecorator
class SomeClass1{
}
Run Code Online (Sandbox Code Playgroud)

还有一些在模块中

@mydecorator
class SomeClass2{
}
Run Code Online (Sandbox Code Playgroud)

然后在运行时的其他模块中,我想获得所有具有装饰器 @mydecorator 的类或构造函数......恐怕这是不可能的:(

export function getaAllClassesByDecorator(decorator:string){
... return constructor or something that  i am able to call static method 
}
Run Code Online (Sandbox Code Playgroud)

javascript typescript

6
推荐指数
1
解决办法
2549
查看次数

获取已调用静态函数的类的名称

所以我的问题如下:我可以获得调用函数的类的名称吗?为了说明这个问题,我将给出一个简短的代码示例。

class Base {
    static getClassName() {
        // get the caller class here
    }
}

class Extended extends Base { }

Base.getClassName(); // Base
Extended.getClassName(); // Extended
Run Code Online (Sandbox Code Playgroud)

谁能告诉我如何做到这一点,或者说这是否可能。

javascript

3
推荐指数
1
解决办法
316
查看次数