在Javascript中,如果我有一个循环,并且在其中我创建了一个使用循环变量的新函数。该函数保留对循环变量的引用,因为在创建函数后该值可能会更改。
现在,假设我的循环遍历一些字符串,我的函数使用包装函数关闭CURRENT字符串。看起来像这样
for (var key in someObj) {
(function (key) {
someFuncList.push(function () {
console.log(someObj[key]);
});
)(key)
}
这些函数中的每一个都有一个单独的键,它不能更改,因为它不存在于函数之外。编译器会对此进行优化,以便它不进行动态访问吗?它是否重要(性能明智)?是一种用某些常量“烘焙”函数的方法吗?