我试图让我的代码 JavaScript 变得“严格”,所以我通过 JSLint 运行它以确保我的代码合规。
但是,在下面的代码中:
setTimeout("getExtJs()", 2000);
我收到以下错误:
Implied eval is evil. Pass a function instead of a string.
如何使我的 JavaScript 代码“严格”?
最佳答案
setTimeout(getExtJs, 2000);
请注意,getExtJs 周围没有引号,我传递的函数不是字符串。
编辑: 如评论中所述,JSLint 不高兴的原因是当第一个参数是字符串时,它被处理为代码,以与 eval() 相同的方式执行
参见 https://developer.mozilla.org/en/window.setTimeout
要找出为什么 eval()(以及使用字符串作为此处的第一个参数的扩展)是邪恶的,请参阅 Mozilla Developer Network entry for eval
.
关于javascript - 如何消除错误: "Implied eval is evil",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4167689/