除了极少数情况,JavaScript中认为eval()是不好的实践。
我刚刚遇到了一段代码片段,它通过类型名称来构造一个对象。删除错误检查、业务逻辑和上下文后,它看起来像这样:
我刚刚遇到了一段代码片段,它通过类型名称来构造一个对象。删除错误检查、业务逻辑和上下文后,它看起来像这样:
function factory(klass) {
eval("var obj = new " + klass + "()"); // Is there a better way?
return obj;
}
有没有更好的方法(更安全,更干净,更快),可以在不使用eval的情况下实现类的创建?
我正在寻找一种通用的方式,通过类名来创建一个类。
例如,想象一下,代码的另一部分动态加载JavaScript文件,生成代码或允许用户扩展,但是代码的另一部分需要在工厂没有先前知识的情况下创建该类。