Существует три способа объявления пользовательских функций в JavaScript, а именно: использование операторов функций, использование конструкторов Function() и определение литералов функций.
1. Оператор function
В JavaScript вы можете использовать оператор function для объявления функций. Конкретное использование следующее:
function funName([args]) { заявления }
funName — это имя функции, которое, как и имя переменной, должно быть допустимым идентификатором JavaScript. После имени функции следует список параметров, заключенных в круглые скобки и разделенных запятыми. Параметры являются необязательными, и их количество не ограничено.
Доступ к параметрам, как к идентификаторам, осуществляется только внутри тела функции; параметры являются частными членами области действия функции. При вызове функции передайте ей значение, затем используйте параметры для получения переданного извне значения и вмешайтесь в выполнение функции внутри тела функции.
После круглых скобок стоит фигурная скобка, а оператор, содержащийся в фигурной скобке, является основным содержимым структуры тела функции. В теле функции фигурные скобки необходимы. Без фигурных скобок JavaScript выдаст синтаксическую ошибку.
Пример
оператора функции должен содержать имя функции, круглые и фигурные скобки, а остальной код можно опускать, поэтому тело самой простой функции является пустой функцией.
function funName() {} //Пустая функция
Если вы используете анонимную функцию, вы можете опустить имя функции.
function () {} //Анонимный пустой
оператор функции var и оператор функции являются операторами объявления, а объявленные ими переменные и функции анализируются при предварительной компиляции JavaScript, что также известно как продвижение переменной и продвижение функции. На этапе предварительной компиляции движок JavaScript создаст контекст для каждой функции, определит объект переменной и зарегистрирует все формальные параметры, частные переменные и вложенные функции в функции в качестве атрибутов объекта переменной.
2. Конструктор Function()
Используйте конструктор Function() для быстрого создания функций. Конкретное использование следующее:
var funName = new Function(p1, p2, ..., pn, body);
Все типы параметров Function() представляют собой строки. p1~pn представляет список имен параметров созданной функции. и тело представляет созданную функцию. Операторы структуры функции, разделенные точкой с запятой между операторами тела.
В примере 1
можно опустить все параметры и передать только строку, представляющую тело функции.
var f = new Function ("a", "b", "return a+b"); //Клонируем структуру функции через конструктор.
В приведенном выше коде f — это имя созданной функции. Определена одна и та же функция, и функции с одинаковой структурой могут быть разработаны с использованием оператора function.
function f(a, b) { //Используем оператор function для определения структуры функции return a + b; }
В примере 2
конструктор Function() используется для создания пустой структуры функции без указания каких-либо параметров.
var f = new Function(); //Определите пустую функцию.
Используйте конструктор Function() для динамического создания функций. Он не ограничивает пользователей телом функции, предварительно объявленным в операторе функции. Использование конструктора Function() позволяет использовать функцию как выражение, а не как структуру, что делает ее более гибкой в использовании. Недостатком является то, что конструктор Function() компилируется во время выполнения, эффективность выполнения очень низкая, и его использование вообще не рекомендуется.
3. Анонимная функция (функциональный литерал)
Функциональный литерал также называется анонимной функцией, то есть функция не имеет имени функции и содержит только ключевое слово функции, параметры и тело функции. Конкретное использование следующее:
function ([args]) { заявления }
Пример 1
Следующий код определяет литерал функции.
function (a, b) { //Функциональный литерал return a + b; }
В приведенном выше коде функциональные литералы по сути аналогичны использованию операторов функций для определения структур функций, и их структуры фиксированы. Однако литерал функции не указывает имя функции, а напрямую использует ключевое слово function для представления структуры функции. Этот тип функции также называется анонимной функцией.
Пример 2.
Анонимная функция — это выражение, то есть выражение функции, а не оператор функциональной структуры. Затем присвойте анонимную функцию как значение переменной f.
//Назначаем функцию как значение непосредственно переменной f вар f = функция (a, b) { вернуть а + б; };
Когда структура функции присваивается переменной в качестве значения, переменная может быть вызвана как функция, и переменная указывает на анонимную функцию.
console.log(f(1,2)); //возвращаем значение 3
Пример 3.
Анонимные функции служат значениями и могут участвовать в более сложных операциях выражения. В приведенном выше примере вы можете использовать следующий код для завершения интегрированной операции определения и вызова функции.
console.log( //Вызов функции как операнда (function (a,b) { вернуть а + б; })(1, 2)); //Возвращаем значение 3
После определения функции мы можем вызвать ее в любом месте текущего документа. Вызвать функцию очень просто, достаточно добавить скобку после имени функции, например alert(), write(). Обратите внимание: если при определении функции параметры указаны в круглых скобках после имени функции, то при вызове функции соответствующие параметры необходимо указывать в круглых скобках.
Пример кода выглядит следующим образом:
functionsayHello(name){ document.write("Привет " + имя); } //Вызов функции SayHello() SayHello('Китайский веб-сайт PHP');
Совет: JavaScript чувствителен к регистру, поэтому ключевое слово функции при определении функции должно быть написано строчными буквами, а функция должна вызываться в том же регистре, в котором она была объявлена.
Выше приведен углубленный анализ объявления и вызова пользовательских функций JS. Для получения дополнительной информации обратите внимание на другие соответствующие статьи на китайском сайте PHP!