在AngularJS提供程序中,“this”是指什么?

时间:2016-04-09 01:33:48

标签: angularjs this

this在AngularJS提供程序中引用了什么内容?

  

它所分配的值完全基于对象   调用此函数。   资料来源:Boot Wiki

基于上面我认为this引用了调用sth.provider('Cat', function CatProvider() { var resourceName = 'user'; this.resourceName = function(value) { if (value === undefined) { return resourceName; } resourceName = value; return this; }; this.$get = function($q, $http, $rootScope) { ... } } 所在函数的对象。

所以在下面的示例示例中......

this

... sth是指.provider还是{{1}}?

我有点困惑。

2 个答案:

答案 0 :(得分:3)

它指的是CatProvider函数。如果您查看 angular.Module.provider() 的AngularJS文档,那么您会看到此说明:

  

使用$ injector注册提供程序函数。 提供商功能   是构造函数,其实例负责   "提供"一家服务工厂。

由于提供者函数是构造函数,因此只表示函数本身已实例化,因此 this 指的是实例化的实例{ {1}}功能。

答案 1 :(得分:1)

在您使用的EcmaScript 5中,这是指在...中使用的功能

function Jim() {
    // this is the Jim function
    var self = this;
    function Fred() {
        // this is the Fred function
        this.name='fred'; // I have added a name property to the Fred function
        // I can access Jim here by referencing self
        self.name='jim'; // I have added a name property to the Jim function
    }
}

这就是我们在EcmaScript 5中的表现。

在EcmaScript 6中,它已全部更改,上述内容不再适用。您很快就会在附近的浏览器中遇到EcmaScript 6:)