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}}?
我有点困惑。
答案 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:)