Javascript - верига, ИТ директор

Установи някои функции, например f1. В рамките на тази функция, ние заявяваме, друга функция f2 (вътрешна) и го връща като резултат от първата. нека f1 функция има параметър (променлив) х. и f2 на функция - параметър (променлив) у. В допълнение към достъп до функцията на параметъра х f2 има повече достъп до параметъра и у (на веригата на обхват).

Сега, за да най-забавната част, а именно, помислете за това, което се случва, ако една променлива в1 възлага на повикване към функция f1 (2).

В резултат на функция F1 (2) се връща друга (вътрешна) f2 функция. Въпреки това, F2, функция в този контекст дава възможност да се получат стойностите на променливите на функцията родител (f1), независимо от факта, че f1 функция е приключил изпълнението му.

Нека да видите подробна информация за функцията:

Изображението показва, че вътрешният функцията помня средата, в която установени. Той има достъп до променлива х, функцията родител. Стойността на променливата (х) е равен на броя 2.

Ние сега се извлече конзола функция стойност с1, (5):

Тази употреба дисплей в резултат на конзолата на добавяне на стойностите на х и у параметри. Стойността на х f2 на функция е взета от обхвата майка.

Vyshepredstavlennye повторете стъпките, но с помощта на друга променлива (c2):

Представлява променливи и функции на този пример, за по-голяма яснота в следната схема:

Заключителни JS-код горния пример:

Приключване на практика

Да предположим, че искате да създадете някои модални прозорци на една страница с тяхното свързване със специфични бутони. В допълнение към уточняване каза повече за това какво трябва да се направи така, че лесно можете да промените заглавието и съдържанието на модален прозорец, ако е необходимо.

Бътън, модален прозорец:

Функция, връщайки се в резултат на друга функция:

Код, който изпълнява създаването на модалните прозорци и настройката, всеки един от тях заглавие и част от съдържанието:

Полученият код (+ на скрипта):

Ако искате да се промени в зависимост от настъпването на събития, заглавието и съдържанието на прозореца модален (например, секунда), тя ще изглежда така:

Създаване на частни методи на затваряне

Например, напишете функция, която ще преброи колко пъти сме кликнали върху конкретна бутон.

Функцията има самостоятелен променлива _count и функции (методи) incrementCount. За контрол на частните методи са публични методи (увеличение () и стойност), което е функция връща като резултат.

Супер, почти всичко е ясно! Но има няколко въпроса, аз ще бъда благодарен, ако отговорите.

Въпросите, свързани с втория пример.
3) Как _count ще се увеличи, ако функцията incrementCount () не се обади?
4) И всяко повикване countClickBtn1 () ще наричаме тази функция функция () # 123; връщане _count; # 125;?

Във втория пример, че е необходимо да се добавят повече, за да се върне _count предизвикателство за частни тържества. Но с нищо не интересно и да се промени малко описание.