3

如果他的创建者忘记了 var 关键字,我如何将我的变量与此函数中的变量隔离开来?

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

function test() 
{
    i = 0;
}
4

2 回答 2

3

将你的 for 循环放在一个单独的范围内

在一个函数中。

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

这样,只有函数内的代码和trial函数才能访问在该级别声明的变量。

于 2013-06-30T12:25:21.753 回答
3

与使用范围界定的先前答案相同的想法,但更好的方法是使用 IIFE:

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

http://jsfiddle.net/8vBc5/

于 2013-06-30T12:44:17.387 回答