На что ссылается или ссылается каждая из функций в этой строке кода в угловых js?

0
myMod.config(function($provide) {
  $provide.provider('greeting', function() {
    this.$get = function() {
      return function(name) {
        alert("Hello, " + name);
      };
    };
  });
});

Это код angularjs для предоставления мне настраиваемой службы с именем приветствия для использования. Я буду вводить эту службу в свой контроллер в моем коде. Код работает отлично для меня. Что меня путает, это количество раз, когда функция слова вызывается в этом конкретном разделе кода. Пожалуйста, можете ли кто-нибудь сказать, что каждая из функций ссылается. Например, функция в строке this.$get = function() ссылается на метод $ get метода поставщика. Что делает функция в строке $provide.provider('greeting', function() относится к "И я также не знаю, что другие функции ссылаются?" Также как побочная заметка я узнал о типе функции "анонимный", функции. Каковы они и почему они называются анонимными? Не является ли определение функции определенным именем полезным?

Теги:

1 ответ

0
Лучший ответ

Пожалуйста, ознакомьтесь с приведенным ниже кодом, который может быть более наглядным. Это эквивалентно вашему коду.

Объяснение:

  1. Метод .config вызывается в модуле myMod. Его аргумент - это function используемая для настройки модуля. В этом случае к модулю добавляется новый provider.
  2. Вторая функция выполняет эту работу. Я регистрирую нового provider в вашем module. Для этого для этой функции регистрации требуется имя для этого нового поставщика, а также provider object. Объект может иметь $get method (метод - это еще одна функция). В вашем случае это достигается путем вызова this.$get.
  3. Метод поставщика $get method вызывается, когда создается новый экземпляр вашего провайдера. Метод $get method возвращает фактическую функцию, которая будет использоваться. В вашем случае это greeting функции.

    myMod.config( registerProvider($provider) );

    /////
    function registerProvider($provider){
      var 
      providerName = 'greeting',
      provider = providerObject;

      $provider(providerName, providerObject);   
    }

    var providerObject = {
      $get: function() {return greeting}   
    };

    function greeting(name){
      alert('Hello');
    }
  • 0
    Большое спасибо. Я приму ваш ответ.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню