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 предизвикателство за частни тържества. Но с нищо не интересно и да се промени малко описание.