Приветствую всех читателей блога scriptcoding.ru. В этой статье мы рассмотрим создание пользовательской функции в языке программирования jscript.
Создание пользовательской js функции является необходимостью для любого языка программирования. В этой статье я хотел бы остановиться на этом моменте детальней. Дело в том, что те примеры, которые я приводил ранее, использовали объявление функции стандартным способом: ключевое слово function, после которого следует имя и необязательные параметры, заключенные в круглые скобки, однако, язык программирования JScript, как собрат JavaScript, позволяет использовать и другой подход, так сказать, более взрослый, его то мы и рассмотрим в этой статье.
JS функции – примеры создания
Для начала, напишем небольшой программный код, помним, что сценарии jscript выполняются под управлением сервера Windows Script Host.
//**************************************** //Объявление простой js функции //jscript_function.js //**************************************** var temp; temp=200; function summ(x,y){ var temp; temp=100; return x+y+temp; } WScript.Echo (summ(2,5)); //вернет 107 WScript.Echo (temp); //вернет 200 |
Тут мы сначала создали переменную temp и присвоили ей значение 200, далее произвели объявление js функции summ, ей передаются два параметра x и y. В теле функции мы создали переменную temp – это локальная переменная, она действует только в пределах объявленной функции, смотрите статью «Урок 2 по JScript: Объявление переменных«. Ключевое слово return говорит о том, что summ(x,y) возвращает сумму x, y и temp.
Хорошо, тут всё понятно, теперь давайте посмотрим на пример ниже:
//**************************************** //Создание пользовательской js функции //1_jscript_function.js //**************************************** temp1=200; function summ1(x,y){ temp1=100; return x+y+temp1; } WScript.Echo (summ1(2,5)); //вернет 107 WScript.Echo (temp1); //вернет 100!!! WScript.Echo (typeof(summ1)); //вернет function |
Фактически, данный приме аналогичен предыдущему – происходит объявление jscript функции summ1, с той лишь разницей, что нет объявления переменных с помощью ключевого слова var (язык не является строгим). Поэтому, вместо 200, строка кода «WScript.Echo (temp) » вернёт 100. Плюс, с помощью оператора typeof можно определить тип данных.
Хорошо, теперь давайте создание jscript функции с помощью функциональных литералов, смотрим на пример:
//**************************************** //Пользовательская js функции //2_jscript_function.js //**************************************** var summ2=function(x,y){ var temp2=100; return x+y+temp2; } WScript.Echo (summ2(2,5)); //107 WScript.Echo (typeof(summ2)); //function |
Как видим, тут есть переменная summ2, которая и будет служить функциональным литералом, после знака равенства следует ключевое слово function, после него можно прописать имя функции js, но это необязательно, ну и собственно, если есть, прописываются параметры в фигурных скобках. Оператор typeof показывает, что summ2 имеет тип function.
Хорошо, теперь попробуем провести следующий эксперимент:
//**************************************** //js функции //3_jscript_function.js //**************************************** var summ=function MySumm(x,y){ var temp4=100; return x+y+temp4; } with(WScript){ Echo (summ(2,5)); //107 Echo (MySumm(2,5)); //107 Echo (typeof(summ)); //function Echo (typeof(MySumm)); //function } |
Данный пример аналогичен предыдущему, с той лишь разницей, что после ключевого слова function следует имя MySumm.
Хорошо, теперь давайте приведем еще один пример программного кода:
//**************************************** //jscrip функции //4_jscript_function.js //**************************************** var summ3; function MySumm3(x,y){ var temp5=100; return x+y+temp5; } summ3=MySumm3; with(WScript){ Echo (summ3(2,5)); //107 Echo (MySumm3(2,5)); //107 Echo (typeof(summ3)); //function Echo (typeof(MySumm3)); //function } |
И опять всё прокатило, мы можем вызывать jscript функцию как через summ3, так и через MySumm3. Ну ладно, мы всё-таки сломим этот «гибкий» JScript, смотрим на пример:
//**************************************** //jscrip функции //5_jscript_function.js //**************************************** var summ4, MySumm4; MySumm4=200; function MySumm4(x,y){ var temp6=100; return x+y+temp6; } summ4=MySumm4; with(WScript){ Echo (typeof(summ4)); //number Echo (typeof(MySumm4)); //number Echo (summ4(2,5)); //ошибка!!! Echo (MySumm4(2,5)); //ошибка!!! } |
И вот тут мы сломили стойкость языка программирования jscript, мы создали переменную MySumm4, и произвели объявление js функции с аналогичным именем. Но язык Jscript все же отдал предпочтение переменной, а не jscript функции.
И так, давайте всё подытожим… В этой статьи мы подробно рассмотрели работу с пользовательскими jscript функциями: способы их создания, различные варианты программного синтаксиса кода, а также, попробовали выяснить, при каких условиях происходит сбой в программном коде. В следующем уроке мы рассмотрим примеры создания собственных объектов – смотрите статью «Урок 4 по JScript — класс Object, создание объекта JS«, так что, подписывайтесь на обновления блога, что бы всегда получать свежую информацию.