我知道eval
和setTimeout
既可以接受一個字符串作爲(1日)參數,而且我知道,我最好不要用這個。我只是好奇,爲什麼是有區別:執行字符串代碼
!function() {
var foo = 123;
eval("alert(foo)");
}();
!function() {
var foo = 123;
setTimeout("alert(foo)", 0);
}();
第一會的工作,第二個會給出錯誤:foo is not defined
他們是如何在幕後執行?
不富走出去的範圍setTimeout的回調之前被調用? – 2012-07-27 08:57:55
爲什麼與邪惡的東西搞亂^^不要使用其中任一:) – Andreas 2012-07-27 09:03:06
一個有趣的相關觀點[這裏](https://stackoverflow.com/q/3492015/465053)。 – RBT 2017-10-07 09:21:44