Помощь Joomla



Учебник Javascript

Функциональные выражения  Август 18, 2016 – 10:47
JavaScript

В JavaScript функция является значением, таким же как строка или число.

Как и любое значение, объявленную функцию можно вывести, вот так:

function sayHi { alert( "Привет" ); } alert( sayHi ); // выведет код функции

Обратим внимание на то, что в последней строке после sayHi нет скобок. То есть, функция не вызывается, а просто выводится на экран.

Функцию можно скопировать в другую переменную:

function sayHi { // (1) alert( "Привет" ); } var func = sayHi; // (2) func; // Привет // (3) sayHi = null; sayHi; // ошибка (4)

  1. Объявление (1) как бы говорит интерпретатору "создай функцию и помести её в переменную sayHi
  2. В строке (2) мы копируем функцию в новую переменную func. Ещё раз обратите внимание: после sayHi нет скобок. Если бы они были, то вызов var func = sayHi записал бы в func результат работы sayHi (кстати, чему он равен? правильно, undefined, ведь внутри sayHi нет return).
  3. На момент (3) функцию можно вызывать и как sayHi и как func
  4. …Однако, в любой момент значение переменной можно поменять. При этом, если оно не функция, то вызов (4) выдаст ошибку.

Обычные значения, такие как числа или строки, представляют собой данные. А функцию можно воспринимать как действие.

Это действие можно запустить через скобки, а можно и скопировать в другую переменную, как было продемонстрировано выше.

Существует альтернативный синтаксис для объявления функции, который ещё более наглядно показывает, что функция – это всего лишь разновидность значения переменной.

Он называется «Function Expression» (функциональное выражение) и выглядит так:

var f = function(параметры) { // тело функции };

Например:

var sayHi = function(person) { alert( "Привет, " + person ); }; sayHi('Вася');

«Классическое» объявление функции, о котором мы говорили до этого, вида function имя(параметры) {...}, называется в спецификации языка «Function Declaration».

  • Function Declaration – функция, объявленная в основном потоке кода.
  • Function Expression – объявление функции в контексте какого-либо выражения, например присваивания.

Несмотря на немного разный вид, по сути две эти записи делают одно и то же:

// Function Declaration function sum(a, b) { return a + b; } // Function Expression var sum = function(a, b) { return a + b; }

Source: learn.javascript.ru

Похожие публикации:

  1. Уроки Jquery
  2. Сайты на Javascript
  3. Учебник Mysql
  4. Учебники по Javascript