javascript - 如何消除错误: "Implied eval is evil"

标签 javascript jslint

我试图让我的代码 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/

相关文章:

javascript - 如何从 JavaScript 对象数组中删除特定元素?

javascript - react 谷歌地图 : Marker resizes after zooming

javascript - Array.prototype.forEach() 在使用 get 处理程序的代理上调用时不起作用

javascript - 为什么引入了新的 JSLint 错误 "use spaces, not tabs"和 "unsafe character"?

javascript - 如何将这两个 XML 附加在一起?

javascript - 如何在Jslint中纠正 "Insecure ' .'. error"

javascript - JSLint 超出范围

javascript - "Use the array literal notation []"对于 var os_map = {}

sublimetext2 - Sublime Text 2 : jslint plug-in missing/usr/local/bin/jslint

PHP:我的按钮在 foreach 循环中无法正常工作