我想知道这是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);
它正在按预期工作。 那么保留类定义的地方呢?在全球对象?并不是的。但他们是可用的。帮我解决这个问题。