我正在尝试使我的代码JavaScript"严格",所以我通过JSLint运行它以确保我的代码是兼容的.
但是,在以下代码中:
setTimeout("getExtJs()", 2000);
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
setTimeout("getExtJs()", 2000);
Run Code Online (Sandbox Code Playgroud)
如何使我的代码JavaScript"严格"?
Ada*_*dam 14
setTimeout(getExtJs, 2000);
Run Code Online (Sandbox Code Playgroud)
请注意,getExtJs周围没有引号,我传递的函数不是String.
编辑: 正如评论中所指出的,JSLint令人不安的原因是当第一个参数是一个String时,它被处理为代码,以与eval()相同的方式执行
请参阅https://developer.mozilla.org/en/window.setTimeout
要找出为什么eval()(以及使用Strings作为第一个参数的扩展)是邪恶的,请参阅Mozilla Developer Network条目eval.