我在一个长脚本中添加了一些新功能,其中许多变量被缩小(只有一个字母)。
当添加for循环时,如果用于迭代的传统i
变量可用,我必须检查很多。即在此脚本范围内未采取/定义。
我的第一个想法就是这样做:
(function () {
for (var i = 0; i < 20; ++i) {
console.log(i); // logs 1 to 19
}
})()
console.log('After is: ' + typeof i); // After is: undefined
有更好的方法吗?在这种情况下,人们可以考虑其他什么方式?
答案 0 :(得分:4)
修复脚本不使用单字母变量。但是,禁止使用函数:
function repeat(fun, times) {
// Since JavaScript is function scoped
// `i` will not leak out of the `repeat`
// function. We will not be able to access
// `i` from a higher scope in this function,
// but, we can assume that is unnecessary.
for (var i = 0; i <= times; i++) {
fun(i);
}
}
var i = "some value";
repeat(function(index) {
console.log("Index is:", index);
console.log("`i` remains:", i);
}, 10);
console.log("After call, `i` is:", i);