Добавляем...


  Локальные функции
    Иногда может оказаться полезным создание функции, локальной по отношению к данной функции. Эта возможность не будет казаться удивительной, если учесть, что в JavaScript допускается создание локальных объектов, а сами функции являются объектами (как будет показано в следующем разделе, "Функции как объекты"). Чтобы создать локальную функцию, просто объявите ее в пределах блока операторов той функции, по отношению к которой создаваемая функция должна быть локальной. Например, следующий сценарий демонстрирует функцию testFunction, содержащую две локально определенные функции, innerl и inner2:

function testFunction()
{
function inner1()
{
document .write ("testFunction-inner1<br />") ;
}

function inner2()
{
document.write("testFunction-inner2<br />");
}

document.write("Вход в testFunction<br />");
innerl();
inner2();
document.write("Выход из testFunction<br />");
}

document.write("Вызов функции testFunction<br />");
testFunction ();
document.write("Возвращение из testFunction<br />");

    Как показано здесь, изнутри функции testFunction эти функции вызвать можно, но попытка вызвать innerl или inner2 в глобальном контексте приведет к появлению сообщения об ошибке:

function testFunction()
{
function inner1()
{
document.write("testFunction-innerl<br />");
}

function inner2()
{
document.write("testFunction-inner2<br />");
}
}
inner1(); // порождает ошибку, поскольку inner1 локальна в testFunction

    Использование локальных функций позволяет создавать автономные модули программного кода, но такая практика в JavaScript встречается редко. Отчасти причина заключается в том, что локальные (или "вложенные") функции поддерживаются только начиная с версий 4.x браузеров. Другой причиной является, конечно, то, что, к сожалению, большинство программистов на JavaScript при создании программного кода вообще не используют модульный подход.
назад: Маскировка далее:


добавить комментарий
(без перезагрузки и регистрации)


10 случайных разделов

Что ищем на сайте ?


Примеры кода на сайте







@ 2008-2011 Amber
При использовании материалов ссылка на сайт обязательна
Яндекс.Метрика