На земле компилятора для других языков что-то вроде этого было бы оптимизировано, когда он скомпилирован для извлечения из цикла, чтобы каждый раз не создавался новый объект:
const arr = [1, 2, 3, 4, 5]
arr.map(num => {
const one_time = 5; // this never changes, can be lifted out of the loop.
return num * one_time;
})
Я пытался проверить,компилятор машинописного текста изменяет приведенный выше код, но, похоже, он этого не делает - может, об этом позаботится что-то другое?Или, возможно, создание объекта назначит эту переменную и никогда не изменит ее.
Я не ожидаю, что ES2015 сделает это, так как он интерпретируется, но я рад ошибаться.
Бонусные баллы, если кто-то может сказать мне, как лучше понять это для себя вбудущее.
Спасибо, ребята!