Я написал этот код, чтобы узнать о закрытии JavaScript:
function1 = function(){
var variable = "foo"
var function2 = function(argument){
console.log(variable + argument);
}
return function2
}
function3 = function1();
function3("bar");
Это печатает "foobar", как ожидалось. Но где переменная живет?
Является ли это свойством функции3 или хранится где-то еще в функции3? Обращается ли JavaScript к какой-то замкнутой цепочке, подобно тому, как она проходит цепочку прототипов? Он хранится в памяти где-то еще?
Я пытаюсь понять это более глубоко.