我在Javascript中有一个字符串。我需要的是将其保存为代码:
var string = "this.count++";
var func1 = {};
func1['f'] = string; // should be saved as executable code..
我该怎么办?我不需要eval()
,因为我现在不需要评估。
答案 0 :(得分:3)
尝试
new Function(string)
例如
var string = "this.count++; console.log(1)";
new Function(string)();
注意:使用Function
构造函数(与eval
一样),您将能够执行任何可能安全风险的任意代码如果它包含用户派生的文本。如果肯定是当前输入它的用户(他们有其他方式在页面上运行代码),那么问题就不那么大了,但是如果你在User B的浏览器上运行来自用户A的文本,那就是大量的不 - 不。
答案 1 :(得分:1)
您可以创建new Function()
个对象。请注意,您应该尽可能避免这种情况,因为 new Function() and eval() are dangerous !
func1['f'] = new Function(string).
您可以阅读更多 here 。