在我的节点js应用程序中,我有一个包含对象名称的变量(名称);我需要将该对象分配给另一个对象的属性;我这样做:
wrapElement[index].model = eval('model.' + name);
Jshint为此提出了一个详细记录的警告(评估可能有害); 我知道eval可能很危险(但在这种情况下,我认为我是安全的,因为'名称'不是来自用户的输入)而且对性能不利;
在这种情况下,我真的需要使用eval()还是有更好的方法来完成这个分配?
正如下面评论中所建议的,在这种情况下,我可以简单地做模型[name]而不是eval()。 此应用程序的代码仅在今天进行了更改,将模型保存在单独的节点模块中并导出为' model&#39 ;; 在模型在同一文件中定义之前:
Shop = {
...
}
Offer = {
...
}
分配是:
wrapElement[index].model = eval(name);
在这种情况下,我无法写
something[name]
而不是使用eval; 在这种情况下,我应该将所有模型(Shop,Offer,...)包含在wrappedObject中以便编写wrappingObject [name],或者我可以使用somethingElse [name]访问它吗?