0
107
2015-08-09

Используйте самоисполняющиеся функции JavaScript для изоляции глобальных переменных и кода

Когда вы впервые начинаете изучать JavaScript, вы сосредоточены на изучении основ. Затем, поработав некоторое время с JavaScript, вы узнаете больше о области видимости переменных и важности изоляции и защиты вашего кода от внешних воздействий.
Понравилась страница? Поставь свою оценку!
PLUGIN_STAR_RATINGS.SCORE_TEXTPLUGIN_STAR_RATINGS.VOTES_TEXT

Что такое переменная область видимости?

Область действия переменной относится к контексту, в котором определяется переменная. По сути, есть два контекста:

  1. Локальная область - JavaScript использует определение уровня функции, поэтому любая переменная, определенная внутри функции, считается локальной переменной.

    function getPi() {
        var pi = 3.14159265359; // Local variable
        return pi;
    }
  2. Глобальная область - если переменная определена вне контекста функции, она считается глобальной.

    var pi = 3.14159265359; // Global variable
    
    function getPi() {
        return $pi;
    }

Изоляция вашего кода с помощью контроля области

Рекомендуется избегать установки переменных в глобальной области видимости, чтобы избежать конфликтов имен, перезаписанных переменных и неправильного доступа. Опять же, JavaScript использует область видимости на уровне функций, поэтому, если вы хотите избежать глобальной области, вам нужно только обернуть свой код в функцию.

Лучший способ сделать это - использовать анонимную функция сразу вызывается функция expression , которая выглядит так:

(function() {
    // Code goes here
})();

По сути, код в функции выше будет работать, как только он будет загружен. Обратите внимание на круглые скобки в конце; это то, что заставляет функцию запускаться автоматически.

Если вы хотите передать параметры, вы можете сделать это так:

(function(win, doc, $) {
    // Code goes here
})(window, document, jQuery);

Этот подход позволяет создавать псевдонимы переменных, передаваемых из глобальной области, и делает минимизацию кода более эффективной.

Вставка всего вашего кода в выражение немедленно вызванной функции эффективно изолирует его от глобальной области и гарантирует, что другой код не будет влиять на ваш код.




Статья была переведена для блога TechBlog.SDStudio.top

Источник: wpscholar.com