を実行しますeval
とsetTimeout
はどちらも文字列を(1番目の)パラメータとして受け入れることができます。evalとsetTimeoutの差は文字列コード
!function() {
var foo = 123;
eval("alert(foo)");
}();
!function() {
var foo = 123;
setTimeout("alert(foo)", 0);
}();
最初はうまくいく、と第二がエラーを与える:foo is not defined
、彼らがシーンの後ろに実行されているどのように違いがある理由を私は興味が?
setTimeoutコールバックが呼び出される前に、fooが有効範囲外になりますか? –
邪悪なものを混乱させる理由^^これらのどちらも使用しないでください:) – Andreas
興味深い関連するビューポイント[ここ](https://stackoverflow.com/q/3492015/465053)。 – RBT