Я иду из фона ActionScript и (очень поздно для вечеринки). Я пытаюсь изучить JavaScript. Я прохожу через AngularJS - Видеоурок для начинающих на YouTube (это довольно хорошо) и увидел что-то действительно основное, что я не понимаю.
В строке 5 определяется var workcount
. Затем две анонимные функции определяются и возвращаются в объекте. Функции ссылаются workcount
, но не workcount
в другой области? Это похоже на blocks
в Objective-C, где локальные вары остаются доступными внутри блока. Есть ли название для этого?
Или, если функция "знает о" ранее определенные в области видимости vars, функция task2
"знает о" task1
?
Мне кажется, что я не могу понять это.
Обновление: Спасибо за все ответы. Я получаю это сейчас - и пока я видел термин "закрытие" раньше, я его никогда не понимал (кажется, это не очень описательный термин. При чтении я увидел термин "стоп-кадры", а затем загорелась лампочка: стек... система координат);
var createWorker = function(){
var workCount = 0;
var task1 = function(){
workCount += 1;
console.log("task1" , workCount);
};
var task2 = function(){
workCount += 1;
console.log("task2" , workCount);
};
return {
job1: task1,
job2:task2
}
};
worker=createWorker();
worker.job1();
worker.job2();
Вывод:
task1 1
task2 2