Я начал узнавать о замыканиях, и, хотя я начинаю осваивать их, есть одна часть, которая не имеет смысла.
В приведенном ниже коде, когда я вызываю исходную функцию, addSomething()
, вычисление не происходит, однако, когда я присваиваю эту функцию новой переменной var all = addSomething();
, она тогда дает требуемый результатто есть он выполняет математические операции и возвращает 6
в консоли.
Может ли кто-нибудь объяснить две вещи:
1) Я делаю это правильно?
2) Почемувычисления выполняются только тогда, когда исходная функция назначена новой переменной?
Я нахожу эту часть очень запутанной.
function addSomething() {
var a = 2,b = 4;
function addIt() {
var total = a + b;
return total;
}
return addIt;
}
var all = addSomething();
console.log(all());