Defining functions inside of loops can lead to bugs such as this one:
var funs = [];
for (var i = 0; i < 13; i++) {
funs[i] = function() { // Non-Complian
return i;
};
}
print(funs[0]()); // 13 instead of 0
print(funs[1]()); // 13 instead of 1
print(funs[2]()); // 13 instead of 2
print(funs[3]()); // 13 instead of 3
...