这行代码中的每个函数在角度js中暗示或引用

What are each of the functions in this line of code in angular js alluding or referring to?

本文关键字:js 暗示 引用 函数 代码      更新时间:2023-09-26
myMod.config(function($provide) {
  $provide.provider('greeting', function() {
    this.$get = function() {
      return function(name) {
        alert("Hello, " + name);
      };
    };
  });
});

这是一个angularjs代码,用于为我提供一个名为greeting的自定义服务。我将在代码中将此服务注入到控制器中。代码对我来说工作正常。我感到困惑的是,在这个特定的代码部分中调用单词函数的次数。请谁能说出每个功能所暗示的内容。例如,行 this.$get = function() 中的函数引用提供程序方法的$get方法。$provide.provider('greeting', function()行中的函数指的是什么?而且我似乎也不知道其他函数指的是什么?另外作为旁注,我了解了一种称为"匿名"函数的函数。它们是什么,为什么被称为匿名?不按特定名称定义函数是否有益?

请查看下面的代码,该代码可能更具说明性。它等效于您的代码。

解释:

  1. myMod模块上调用 .config 方法。它的参数是用于配置模块的function。在这种情况下,会将新provider添加到模块中。
  2. 第二个函数完成这项工作。我在您的module上注册一个新的provider.为此,此注册功能需要此新提供程序的名称以及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');
    }