2016-08-10 3 views
2

Я искал информацию о переменной window.angular и ничего не нашел this post. В этом посте мы имеем следующий код:AngularJS: window.angular variable

(function(angular, undefined){ 
    'use script'; 
    var djng_forms_module = angular.module('ng.django.forms', []); 
    funtion hasCode(s){ 
     return ..... 
    } 
    var foo = ..... 
}(window.angular)); 

И человек объясняет, что, когда мы используем этот фрагмент кода, оно гарантирует, что оно выполняется после того, как население переменной window.angular. Я не понимаю, почему не могло быть возможно, что window.angular может быть неопределенным при использовании этого синтаксиса, не могли бы вы объяснить мне, почему, пожалуйста?

Заранее спасибо :)

ответ

1

Это не имеет ничего общего с обеспечением угловой здесь. Это синтаксис, который, как я знаю, делает 3 вещи:

  1. Позволяет Minifier изменять имена локально контекстные переменные
  2. Уменьшение времени доступа к переменному, так как это локальная области
  3. Если кто-то создал бы локально ограниченную «угловую» переменную, вы будете уверены, что используете глобальную, явно используя переменную окна

Но так как IIFE вызывается немедленно, согласно его определению, 't обеспечить каким-либо образом, чтобы window.angular был представлен.

+1

Спасибо за ваш ответ Алексей, так в чем же смысл прохождения ** window.angular ** в качестве аргумента IIFE? –

+0

по сравнению с чем? Я уже перечислил плюсы этого подхода. Если бы вы были более конкретными, по сравнению с «не используя IIFE» или «проходя ** угловым **, а не ** window.angular **»? –

+0

Жаль, что я оговорился, я хотел сказать без использования IIFE –

Смежные вопросы