You don't know js(up & going)


Download 424.95 Kb.
Pdf ko'rish
bet37/53
Sana08.11.2023
Hajmi424.95 Kb.
#1757840
1   ...   33   34   35   36   37   38   39   40   ...   53
Bog'liq
You don\'t know JS(up & going)

Функции как значения
До сих пор мы обсуждали функции как основной механизм *области видимости*
в JavaScript. Вспомните синтаксис типичного объявления `функции`, указанный
ниже:
___________________________________
function foo() {
// ..
}
___________________________________
Хотя это может показаться очевидным из синтаксиса, `foo` — по сути просто
переменная во внешней окружающей области видимости, у которой есть ссылка
на объявляемую `функцию`. То есть, `функция` сама является значением, так же
как `42` или ` 1,2,3 `.
Это может сперва прозвучать как странная идея, поэтому уделим время ее
изучению. Вы не только можете передать значение (аргумент) *в* функцию, но и
*сама функция может быть значением*, которое может быть присвоено
переменным, или передано, или возвращено из других функций.
В связи с этим, о значении-функции следует думать как о выражении, сродни
любому другому значению или выражению.
Пример:


___________________________________
var foo = function() {
// ..
};
var x = function bar(){
// ..
};
___________________________________
Первое функциональное выражение, присваиваемое переменной `foo`,
называется *анонимным* поскольку у него нет `имени`.
Второе функциональное выражение *именованное* (`bar`), несмотря на то, что
является ссылкой, также присваивается переменной `x`. *Выражения с
именованными функциями* как правило более предпочтительны, хотя
*выражения с анонимными функциями* все еще чрезвычайно употребительны.
Более детальная информация есть в книге *Область видимости и замыкания*
этой серии.
Выражения немедленно вызываемых функций
Immediately Invoked Function Expressions IIFEs))
В предыдущем примере ни одно из выражений с функциями не выполнялось, мы
могли бы это сделать, включив в код `foo()` или `x()`, например.
Есть еще один способ выполнить выражение с функцией, на который обычно
ссылаются как на *immediately invoked function expression* IIFE

Download 424.95 Kb.

Do'stlaringiz bilan baham:
1   ...   33   34   35   36   37   38   39   40   ...   53




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling