How To Eliminate Error: "implied Eval Is Evil"
Solution 1:
setTimeout(getExtJs, 2000);
Note that there are no quotes around getExtJs, I am passing the function not a String.
EDIT: As noted in the comments the reason why JSLint is upset is that when the first argument is a String it is processed as code to be executed in the same manner as eval()
See https://developer.mozilla.org/en/window.setTimeout
To find out why eval() (and by extension using Strings as the 1st argument here) is evil see the Mozilla Developer Network entry for eval
.
Solution 2:
It shouldn't complain if you do:
setTimeout(function(){
// your code of this function getExtJs here
}, 2000);
Or:
setTimeout(getExtJs, 2000);
Although I don't see anything wrong in your implementation security-wise or otherwise.
Solution 3:
Like it says, pass in the function (no quotes around the function name):
setTimeout(getExtJs, 2000);
When you pass in a string ("getExtJs"
), setTimeout
end up eval
ing it. Instead of that, it is better to simply pass in the function itself (getExtJs
).
Solution 4:
setTimeout(function () {getExtJs();}, 2000);
Solution 5:
The correct syntax is
setTimeout(getExtJs, 2000);
You pass a reference to the function, and after 2000ms the function is executed. If you put parens after the function name, you are executing the function instead of referencing it.
Post a Comment for "How To Eliminate Error: "implied Eval Is Evil""