【发布时间】:2017-06-23 16:04:58
【问题描述】:
在 javascript 中,可以将代码存储为字符串并使用 'eval' 执行它。另一方面,我们可以将代码表示为进一步执行的函数。为什么在 javascript 中最好使用闭包而不是“eval”?
编辑:
例如:
存储为字符串的代码:
function(x, y, callback){
if (x > y){
eval(callback);
}
}
存储为函数的代码:
function(x, y, callback){
if (x > y){
callback();
}
}
【问题讨论】:
-
你能举个例子,
eval会代替闭包吗? -
@le_m 查看我的编辑。
-
你的例子甚至不是关闭
-
所以,把它称为它是什么,而不是它不是什么。
-
您确实应该将
Strings 视为 Javascript 中的不可变数据,而不是代码。eval只是把你带到黑暗的一面。
标签: javascript ecmascript-6 ecmascript-5