Кайл Симпсон

Citat

Amiran Bestaev (CHICO)har citeratför 2 år sedan
Сравните два предыдущих фрагмента. В первом фрагменте имя

foo связывается с внешней областью видимости, и мы вызываем

его напрямую foo(). Во втором фрагменте имя foo не связывается

с внешней областью видимости, а только со своей функцией.

Иначе говоря, (function foo(){ .. }) как выражение означает,

что идентификатор foo находится только в области видимости,

в которой находится .., а не во внешней области видимости. Со-

крытие имени foo означает, что оно не будет без необходимости

загрязнять внешнюю область видимости.
Amiran Bestaev (CHICO)har citeratför 2 år sedan
например (function foo(){ .. })(). Первая пара () преобразует

функцию в выражение, а вторая пара () выполняет функцию.

Этот паттерн настолько распространен, что несколько лет назад

сообщество выработало для него специальный термин: IIFE (со-

кращение от «Immediately Invoked Function Expression», то есть

«немедленно вызываемое функциональное выражение»).

68

Глава 3. Функциональные и блочные области видимости

Конечно, для IIFE имена не обязательны, в самой распространен-

ной форме IIFE используется анонимное функциональное вы-

ражение. Именованные IIFE, хотя и встречаются безусловно реже, обладают всеми преимуществами перед анонимными функцио-

нальными выражениями, так что эту практику стоит взять на

вооружение.
Amiran Bestaev (CHICO)har citeratför 2 år sedan
Вся суть блочной области видимости заключается в том, чтобы

объявлять переменные как можно ближе к месту их использова-

Intryck

Елена Кузнецоваdelade ett intrycki fjol
💡Lärde mig mycket
🎯Givande
👍Värt att läsa

  • inte tillgänglig
  • fb2epub
    Dra och släpp dina filer (upp till fem åt gången)