ES6动态实例化类

时间:2016-02-23 16:05:28

标签: javascript class ecmascript-6

我想知道这是Chrome问题还是设计问题(与JavaScript中的所有其他对象不一致)。

类不能像其他对象一样动态实例化。请考虑以下代码:

class BaseClass {

}

在某个地方你想动态创建这个类的实例:

var inst;
if (window[fnName].constructor) {
  try {
    inst = new window[fnName](value);
  } catch (e) {}
} else {
  inst = window[fnName](value);
}

上面函数的代码将失败(在严格模式下为leas)因为window对象不包含BaseClass。这在JavaScript中并不自然,因为定义的对象/函数在window对象中可用。

如果我将代码更改为

return new BaseClass(value);

它正在按预期工作。 那么保留类定义的地方呢?在全球对象?并不是的。但他们是可用的。帮我解决这个问题。

0 个答案:

没有答案