从 String 实例化对象时不想使用 eval - 帮助吗?
我有以下遗留代码,我想从中删除 eval:
eval('view = new ' + o.base + '(o)');
到目前为止我想出的最好的代码是
view = eval(o.base).prototype.constructor.apply(o)
……显然仍然使用 eval。有人可以帮忙吗?
注意:o.base 变量是引用有效函数的限定类名(例如“application.area.type.ClassName”)。
I have the following legacy code that I'd like to remove eval from:
eval('view = new ' + o.base + '(o)');
The best I've come up with so far is ...
view = eval(o.base).prototype.constructor.apply(o)
... which obviously still uses eval. Can someone please help?
NOTE: The o.base variable is a qualified classname (e.g. "application.area.type.ClassName") referring to a valid function.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
但您仍然可以使用
new
:UPDATE
对于表示任何限定名称的
o.base
来说,实现此目的的更通用方法是:But you can still use
new
:UPDATE
A more generic way to achieve this for
o.base
representing any qualified name would be: