Функция - это многоразовый блок кода, который управляется событием или выполняется при вызове.
JScript поддерживает две функции: одна - это функция внутри языка (например, eval ()), а другая создается сама по себе.
Переменная, объявленная внутри функции JavaScript (с использованием VAR), является локальной переменной, поэтому к ней можно получить доступ только внутри функции. (Объем этой переменной является локальной).
Вы можете использовать локальные переменные с одинаковым именем в разных функциях, потому что могут быть распознаны только функции, которые объявили переменную.
Как вызвать функцию
1. Нормальный вызов: functionName (фактический параметр ...)
2. Вызовите переменные, указывающие на функцию:
var myvar = имя функции;
myvar (фактические параметры ...);
Возвращает функцию
1. Когда функция не имеет явного возвращаемого значения, возвращаемое значение «не определен».
2. Когда функция имеет возвращаемое значение, она возвращается, что бы ни было.
Мы можем вернуть функцию в место, где она вызывается с помощью оператора возврата.
При использовании оператора возврата функция прекращает выполнение и возвращает указанное значение.
Функция обычно возвращает уникальное значение, поэтому это значение также может быть другой функцией:
Кода -копия выглядит следующим образом:
<script type = "text/javascript">
var box = function () {
var a = 1;
return function () {
предупреждение (A ++)
}
}
alert (box ()); // "function () {alert (a ++)}" всплывает
</script>
Здесь мы просто присваиваем возвращаемое значение переменной, и тогда мы можем назвать его как использование нормальной функции:
Кода -копия выглядит следующим образом:
<script type = "text/javascript">
var box = function () {
var a = 1;
return function () {
Блюдо (++ a)
}
}
var newfunc = box ();
newfunc (); // 2
</script>
Если вы хотите, чтобы возвращаемая функция была выполнена немедленно, вы также можете использовать Box () () для выполнения этого кода.
Все функции Ecmascript передаются значениями, что означает, что параметры не будут переданы ссылкой.
PS: Если есть проходная ссылка, то переменная в функции будет глобальной переменной и также может быть доступна внешне.
(1) Типы значений: числовые, логические, нулевые, неопределенные.
(2) Тип ссылки: объект, массив, функция.
Значение типа ссылки: относится к тем объектам, хранящимся в памяти кучи, что означает, что переменная на самом деле является просто указателем, который выполняет другое место в памяти, а объект сохраняется этим местоположением;
Создайте анонимные функции
Кода -копия выглядит следующим образом:
function () {
вернуть 'Lee'; // Одиночные анонимные функции не могут быть выполнены, и даже если их можно запустить, их нельзя вызвать, потому что нет имени
}
Есть много использования этой анонимной функции в jQuery. Объявите анонимную функцию напрямую и используйте ее немедленно. Преимущество использования анонимных функций заключается в том, что они могут избежать определения функции, которая не используется один раз, и она свободна от проблемы конфликтов именования. В JS нет концепции пространства имен, поэтому легко иметь конфликты с именем функции. Как только конфликт с именованием вступит, последний объявил, что один должен преобладать.
Выполнить анонимные функции путем самообслуживания:
Кода -копия выглядит следующим образом:
// выполнять анонимные функции посредством самообслуживания
<script type = "text/javascript">
(function () {// (анонимная функция) (); положить анонимную функцию в первые скобки и выполнить во вторых скобках.
оповещение ('Lee');
}) ();
</script>
Назначьте возвращаемое значение анонимной функции переменной:
Кода -копия выглядит следующим образом:
// Присвоение возвращаемого значения самостоятельной анонимной функции с переменной
<script type = "text/javascript">
var box = (function () {
оповещение ('Lee');
}) (); // popt "Lee";
предупреждение (коробка); // Неопределенный всплывает. Если записывается Alert (box ()), то появляется только «Lee».
</script>
Пропуск параметров для анонимных функций самостоятельного представления:
Кода -копия выглядит следующим образом:
// самостоятельно реализовать передачу параметров анонимных функций
<script type = "text/javascript">
(функция (возраст) {
блюд (возраст);
}) (100); // popt 100
</script>
JavaScript создает динамические функции:
JavaScript поддерживает создание динамических функций. Динамические функции должны определяться функциональными объектами (функция является объектом в JavaScript, который является фиксированным и неизменным. Она утверждает, что «F» объекта функции должен быть зачислен.
Основной формат для создания динамических функций: var variable name = new Function («Параметр 1», «Параметр 2», «Параметр N», «Оператор выполнения»);
Посмотрите на следующий код:
Кода -копия выглядит следующим образом:
<script type = "text/javascript">
var square = новая функция ("x", "y", "var sum; sum = x+y; return sum;");
Результатом оповещения («квадрат (2,3):«+квадрат (2,3)); // Результат квадрата (2,3): 5
</script>
Квадрат - это динамически созданная функция. Каждая часть контента в скобках после объекта функции должна быть в форме строки, то есть он должен быть заключен в кавычки ("" или '')
Этот код:
var square = новая функция ("x", "y", "var sum; sum = x+y; return sum;");
И следующий код:
Кода -копия выглядит следующим образом:
Функция square (x, y) {
var sum;
sum = x+y;
вернуть сумму;
}
Это точно то же самое, за исключением того, что одна является динамической функцией, а другая - статическая функция.
Почему мы разделяем код на небольшие кусочки кода? Преимущество деления строки на несколько независимых строк заключается в том, что мы можем изменить функцию функции в любое время, изменяя некоторые строки.
Функция обратного вызова
Обратный вызов - это процесс вызова функции. Затем начните с понимания этого процесса вызова. Функция A имеет параметр, который является функцией b. Когда функция A выполняется, функция B выполняется. Тогда этот процесс называется обратным вызовом.
На самом деле, китайцы также легко понять: обратные вызовы, обратные вызовы, означающие обратные вызовы. После завершения функции A, функция вызова B позже.
Здесь должно быть ясно: функция B передается в функцию A в форме параметра, поэтому функция B называется функцией обратного вызова.
Большинство функций эффекта в jQuery включают функции обратного вызова. функция эффекта jQuery
Например:
Кода -копия выглядит следующим образом:
<script type = "text/javascript">
$ ("div"). Show (1000, function () {
// Функция обратного вызова
});
</script>
Здесь функция обратного вызова может быть заменена на экземпляр:
Кода -копия выглядит следующим образом:
<script type = "text/javascript">
$ ("div"). Show (1000, function () {
console.log ("Привет, мир")
});
</script>
Обратный вызов на самом деле, когда функция выполняется, функция, которая сейчас выполняется, является так называемой функцией обратного вызова. Как насчет этого? Это легко понять ...
Разница между методами и функциями
Кода -копия выглядит следующим образом:
var arr = [1,2,3,4,5]
var a = 12; // переменная: бесплатно
arr.A = 5; // атрибут: принадлежит объекту
функция show () // function: бесплатно
{
оповещение ('a');
}
arr.fn = function () // Метод: принадлежит объекту
{
оповещение ('b');
}
На самом деле, метод - это функция, но метод имеет объект, к которому он принадлежит.
Как мы знаем, функции привязки, чтобы нажать на события
Грамматика:
$ (селектор) .click (функция)
Описание параметра
Функция необязательна. Определяет функцию, которая работает, когда происходит событие Click.
Эта форма часто наблюдается в jQuery. Он использует функцию в качестве параметра для добавления обработчика событий в метод.
JS Global Function
Глобальные функции не являются концепцией со свойствами или методами встроенных объектов. Глобальная функция не принадлежит к какому-либо встроенному объекту.
JavaScript содержит следующие 7 глобальных функций для выполнения некоторых обычно используемых функций:
Escape (), eval (), isfinite (), isnan (), parsefloat (),
parseint (), unescape ().
Несколько функций функций
Используйте в качестве конструктора класса
Кода -копия выглядит следующим образом:
Функция класса () {}
class.prototype = {};
var item = new class ();
Используется в качестве закрытия
Кода -копия выглядит следующим образом:
(function () {
// Независимая сфера
}) ();
Называется конструктором
Так называемый конструктор должен генерировать новый объект через эту функцию.
Кода -копия выглядит следующим образом:
<script type = "text/javascript">
функциональный тест () {
this.x = 10;
}
var obj = new Test ();
оповещение (OBJ.X); // pop 10;
</script>
Новый оператор может использоваться для объединения предопределенных конструкторов, таких как Object (), date () и function () для создания и инициализации объектов. Объектно-ориентированное программирование является мощной особенностью его способности определять пользовательские конструкторы для создания пользовательских объектов, используемых в сценариях. Пользовательский конструктор создается так, чтобы объекты с определенными свойствами могут быть созданы. Ниже приведен пример пользовательской функции (обратите внимание на использование этого ключевого слова).
Кода -копия выглядит следующим образом:
Функциональный круг (xpoint, ypoint, radius) {
this.x = xpoint; // x координата центра круга.
this.y = ypoint; // координата y центра круга.
this.r = radius; // радиус круга.
}
При вызове конструктора круга дается значение центральной точки и радиуса круга (все эти элементы необходимы для полного определения уникального кругового объекта). В конце, объект круга содержит три свойства. Вот как проиллюстрировать объект круга.
var Acircle = новый круг (5, 11, 99);
Преимущество использования функции конструктора заключается в том, что он может получать некоторые параметры при создании объекта.
Кода -копия выглядит следующим образом:
<script type = "text/javascript">
Функциональный тест (имя) {
this.occupation = "кодировщик";
this.name = name;
this.whoareyou = function () {
вернуть "I'm" + this.name + ", и я" + this.occupation;
}
}
var obj = new Test ('trigkit4'); // Создать разные объекты, используя один и тот же конструктор
var obj2 = новый тест ('студент');
obj.whoareyou (); // "Я триггер4, а я угол"
obj2.whoareyou (); // "Я студент, а я угол"
</script>
По соглашению мы должны заработать первую букву функции конструктора, чтобы значительно отличить ее от общей функции.
Следующие две формы определения функций эквивалентны.
Кода -копия выглядит следующим образом:
<script type = "text/javascript">
var test = function () {
оповещение ("Привет, мир");
}
Alert (typeof (test)); // Выходная функция
</script>
Вот тест переменной, начальное значение которого назначается функции объекта
Кода -копия выглядит следующим образом:
<script type = "text/javascript">
функциональный тест () {
оповещение ("Привет, мир");
}
Alert (typeof (test)); // Выходная функция
</script>
Посмотрите на следующую форму определяющей функции:
Кода -копия выглядит следующим образом:
<script type = "text/javascript">
функциональный тест () {
оповещение ("Привет, мир");
};
test (); // Это на самом деле выводит привет, не так ли?
функциональный тест () {
оповещение ("Привет");
};
test (); // только, привет вывод
</script>
Очевидно, первая функция не сработала, не так ли? Мы знаем, что механизм анализа JavaScript не выполняет кодовую строку по строке, но выполняет код по частям. При анализе и выполнении той же программы сначала будут выполнены операторы функции формулы определения, поэтому первая определенная логика кода была перезаписана вторым, поэтому та же функция будет выполнена только дважды.
Функционировать как значение
Функции - это не только синтаксис, но и значение в JS. То есть функция может быть назначена переменной, хранящейся в атрибуте объекта или элементе массива, и передать в другую функцию в качестве параметра.
Имя функции на самом деле невидимо, это просто имя переменной, которая относится к объекту функции
Кода -копия выглядит следующим образом:
<script type = "text/javascript">
Функция square (x, y) {
вернуть x*y;
}
var s = square; // s и квадрат относятся к той же функции
квадрат (2,3); // 6
S (2,4); // 8
</script>
В дополнение к назначению функций переменным, функции также могут быть назначены атрибутам объектов. Когда функция называется атрибутом объекта, функция называется методом.
Кода -копия выглядит следующим образом:
<script type = "text/javascript">
var obj = {square: function (x, y) {// объект напрямую измеряется
вернуть x*y;
}};
var ect = obj.square (2,3);
</script>
атрибут прототипа
Каждая функция содержит атрибут прототипа, который указывает на ссылку на объект, который называется объектом прототипа.
См.: JavaScript Learning Notes (v) Прототип и цепочка прототипа
Расширенные функции
Функция высшего порядка здесь не является функцией высшего порядка в высоком числе. Так называемая функция высшего порядка-это функция, которая управляет функцией. Он получает одну или несколько функций в качестве параметров и возвращает новую функцию.