3

作成者が var キーワードを忘れた場合、この関数の変数から変数を分離するにはどうすればよいですか?

for (var i = 0; i < 4; i++) 
{
    test();
}

function test() 
{
    i = 0;
}
4

2 に答える 2

3

スコーピングを使用した以前の回答と同じ考えですが、より良い方法は IIFE を使用することです:

(function () {
    for (var i = 0; i < 4; i++) {
        test();
    }
})();

http://jsfiddle.net/8vBc5/

于 2013-06-30T12:44:17.387 に答える
3

for ループを別のスコープに入れます。

関数で。

function test(){
  i = 0;
}
function trial(){
  for (var i = 0; i < 4; i++){
    test();
  }
}
trial();

そうすれば、関数内のコードと関数のみが、trialそのレベルで宣言された変数にアクセスできます。

于 2013-06-30T12:25:21.753 に答える