Коллизия нотации "(function)();" в JavaScript или почему JavaScript разработчик будет ставить точку с запятой перед (function)();
Нотацию (function)(); в JavaScript всегда надо начинать с точки с запятой.
Это защитит от трудно определимой ошибки в интерпретации кода JavaScript-движком.
Нотация (function)(); в JavaScript чаще всего применяется в следующих случаях:
Ниже код, объясняющий почему нужно использовать точку с запятой вначале.
Причины применения:
Это защитит от трудно определимой ошибки в интерпретации кода JavaScript-движком.
Нотация (function)(); в JavaScript чаще всего применяется в следующих случаях:
- когда вы хотите ограничить видимость локальных переменный и поиграть с замыканиями (closures), при этом вызывая немедленное выполнение.
- когда в проекте используется несколько JavaScript фреймворков и они бодаются за переменную по имени $. Эта нотация помогает гарантированно использовать переменную $, независимо от будущих изменений на сайте.
;(function ($) { /* do something*/ })(jQuery);
Ниже код, объясняющий почему нужно использовать точку с запятой вначале.
function f1(inp) { alert("f1 - " + inp); }
// Ошибки не будет, все в порядке.
var f2 = function (inp) { alert("f2 - " + inp); }
; (f1)("2");
// Если следующую строку не завершить точкой с запятой, будет ошибка.
var f3 = function (inp) { alert("f3 - " + inp); }
(f1)("2");
// Если следующую строку также не завершить точкой с запятой, будет ошибка.
var int1 = 1
(f1)("1");
Причины применения:
- Частый рефакторинг и масштабирование кода.
- Объявления метода в переменную (var f2 = function(){}) стандартная практика, при этом закрывающая метод фигурная скобка и тело метода скрывает наглядность того, что это объявление переменной.
Комментарии
Отправить комментарий