我有一个应用程序脚本,它能正常工作,但是我使用了一些eval()语句来使其正常运行。我不太明白为什么"eval is evil"(eval是邪恶的),因为我一直在阅读这个话题,但我真正不理解的是当它是我所需要的唯一方法时,如何避免使用它。
在我的脚本中,我有很多产品。每个产品都有自己的属性数组。还有一个包含所有数组名称的数组。当我运行不同的函数时,这些数组被用于构建页面内容。我发现唯一可行的方法是这样做:
在我的脚本中,我有很多产品。每个产品都有自己的属性数组。还有一个包含所有数组名称的数组。当我运行不同的函数时,这些数组被用于构建页面内容。我发现唯一可行的方法是这样做:
var schedule = {};
$.each(productNameArray, function (i, name) {
schedule = eval(name);
// DO STUFF
});
使用name只传递一个字符串,没有实际读取它要引用的数组。eval使其作为对象工作。
那么如何在不使用eval()的情况下完成这个任务呢?