也许我遗漏了一些特定于角锥或javascript的东西,这需要这样做,但是有人能解释一下,如果有一个技术原因,CarWashService被定义了两次吗?
(function() {
angular.module("cw.services")
.factory("CarWashService", ['$sce', '$rootScope', function ($sce, $rootScope) {
var CarWashService;
return new (CarWashService = (function () {
function CarWashService() {
this.results = [];
this.resultsCountText = "";
this.PageIndex = 0;
this.processing = false;
this.initialized = false;
this.showNoResults = false;
this.showResults = false;
this.noCarWashMessage = $sce.trustAsHtml($rootScope.resources.landingNoCarWashMessage);
}
return CarWashService;
})());
}]);
}).call(this);可能会让我失望的是,在分配给return new的同一行中调用CarWashService。对于javascript大师来说,在生活中使用一个不同于CarWashService的名字是否有意义?如果没有其他的话,那是为了可读性吗?或者,这是在做IIFE时被接受的模式吗?
发布于 2013-11-02 23:40:02
不管是谁编写的,这使得它变得不必要的复杂,仅仅声明CarWashService绝对没有好处,因为他们没有使用他们创建的额外的闭包。即使他们确实需要一个封闭的私人国家,他们有一个从外部职能。
作为一个侧面的注意,这看起来也不正确的角度。如果您真的想要一个工厂,这应该是返回构造函数,而不是它的一个实例。这看起来应该被声明为服务。
https://stackoverflow.com/questions/19746392
复制相似问题