Підпрограми в JavaScript

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук

Підпрограми

При створенні програми розумно виділити в ній логічно незалежні частини (підпрограми). Кожну частину при необхідності можна розбити на окремі підпрограми і т. д. Розбиття програми на підпрограми полегшує процес відлагодження, оскільки дозволяє відлагоджувати кожну підпрограму окремо. Один раз створену і відлагоджену підпрограму можна використовувати довільну кількість разів. У багатьох мовах програмування поняття підпрограми реалізується за допомогою конструкцій процедур, функцій, модулів і т.д. Основним елементом для реалізації підпрограм в мові JavaScript є функція.

Створення та використання функцій

В мові програмування JavaScript функції поділяються на іменовані функції та анонімні. Основна їх відмінність в тому, що доступ до іменованої функції можна отримати скрізь, а до анонімної - тільки після її оголошення.

Синтаксис оголошення іменованої функції
function ім'я(параметри)
{ код }

Синтаксис оголошення анонімної функції
var ім'я = function(параметри)
{ код }

або
var ім'я = new Function(параметри, 'код')

Причому синтаксис new Function використовується досить рідко, в основному для отримання функції з тексту, наприклад, динамічно завантаженого з сервера в процесі виконання скриптів.

Приклад оголошення та використання іменованої функції

 // функція sum визначена нижче її виклику.
 var a = sum(1,1);
function sum(x,y) {   return x+y; }

Приклад оголошення та використання анонімної функції

 //При виконанні даного коду  буде отримано помилку так як під час виклику
 //функція sum ще не оголошена
 var a = sum(1,1);
var sum = function(x,y) {   return x+y; }

Область видимості функції

Змінні визначені всередині функції невидимі поза цією функцією, так як змінні визначаються в області видимості всередині функції. Будь-яка функція має доступ до всіх змінних та інших функцій які визначені у тій же області видимості де і сама функція була визначена. Іншими словами, функція визначена в глобальній області видимості має доступ до всіх змінних визначених у глобальній області видимості. Функція визначена всередині іншої функції має доступ до всіх змінних визначених у батьківській функції і будь-яких інших змінних до яких має доступ батьківська функція.

Приклад

 // Визначення змінних в глобальній області видимості
 var num1 = 20,
   num2 = 3,
   name = "Test"; 
 // Ця функція визначена в глобальній області видимості
 function multiply() {
   return num1 * num2;
 }
multiply(); // функція поверне 60
function getScore () { var num1 = 2,     num2 = 3; //Приклад вкладеної функції   function add() {     return name + " scored " + (num1 + num2);   }    return add(); }
getScore(); // функція поверне "Test scored 5"

Параметри функції

Функції в JavaScript можна запускати з будь-яким числом параметрів. Якщо в функцію передано менше параметрів, ніж є у визначенні, то відсутні параметри отримують значення undefined.