如何从其名称获取javascript类

时间:2017-06-26 14:17:32

标签: javascript class

我的问题是关于ECMAScript 2015 javascript类。

当我创建一个新类时:

class MyRandomClass {
  constructor() {...}
}

我希望从名称中访问我刚刚定义的类构造函数,就像我对函数一样:

var myClass = window['MyRandomClass'];

但它不起作用,因为类构造函数不存储在全局窗口对象中。

有谁知道如何从名称中获取构造函数?

我不想将常规功能用作课程。

使用window.MyRandomClass = MyRandomClass也不符合我的需要。

非常感谢。

1 个答案:

答案 0 :(得分:1)

请注意MyRandomClass等同于它的构造函数,即它们是相同的。在Javascript中,类 IS 是一个函数,类语法只是语法糖。

class MyRandomClass {
  constructor() {
  }
}

this.MyRandomClass = MyRandomClass;

console.log(this['MyRandomClass']);
console.log(this['MyRandomClass'].prototype.constructor);
console.log(this['MyRandomClass'].prototype.constructor === this['MyRandomClass']);

因此访问该类与访问它的构造函数相同。因此,您可以在全局范围内使用this['MyRandomClass']访问它。