JSを学ぶだけです。私の考えでは、関数 setTimeout コード領域は通常どおりに機能するはずですが、そうではありません。
var result = 0;
(function (i){
if(i > 0){
result = result + i;
i = i - 1;
setTimeout("arguments.callee(" + i + ")",100);//arguments.callee(i);
}
else if(i == 0)
return;
}(10));
alert(result);
setTimeout を削除すると、10 ではなく 55 のアラートが表示されます。理由を知っている人はいますか?