функціональні вирази

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

Цю дію можна запустити через дужки (). а можна і скопіювати в іншу змінну, як було продемонстровано вище.

Він називається «Function Expression» (функціональний вираз) і виглядає так:

Незважаючи на трохи різний вигляд, по суті дві ці записи роблять одне і те ж:

Основна відмінність між ними: функції, оголошені як Function Declaration, створюються інтерпретатором до виконання коду.

А Function Expression створюються в процесі виконання виразу, в якому створені, в даному випадку - функція буде створена при операції присвоювання sayHi = function.

Можна розташувати функції внизу, а їх виклик - зверху або навпаки.

У деяких випадках «додаткову зручність» Function Declaration може послужити погану службу.

Наприклад, спробуємо, в залежності від умови, оголосити функцію sayHi по-різному:

Тобто, функція створюється викликом new Function (params, code):

params Параметри функції через кому у вигляді рядка. code Код функції у вигляді рядка.

Таким чином можна конструювати функцію, код якої невідомий на момент написання програми, але рядок з ним генерується або подгружается динамічно під час її виконання.

  • Якщо функція оголошена в основному потоці коду. то це Function Declaration.
  • Якщо функція створена як частина виразу. то це Function Expression.

Між цими двома основними способами створення функцій є такі відмінності:

До виконання першого рядка коду.

Коли управління досягає рядки з функцією.

Так (тому що створюється заздалегідь)

Якщо немає явної причини використовувати Function Expression - віддавайте перевагу Function Declaration.

Порівняйте з читання:

Function Declaration коротше і краще читається. Додатковий бонус - такі функції можна викликати до того, як вони оголошені.

Використовуйте Function Expression тільки там, де це дійсно потрібно і зручно.

перед тим як писати ...

Схожі статті