首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IIFE和命名约定

IIFE和命名约定
EN

Stack Overflow用户
提问于 2013-11-02 20:15:45
回答 1查看 88关注 0票数 0

也许我遗漏了一些特定于角锥或javascript的东西,这需要这样做,但是有人能解释一下,如果有一个技术原因,CarWashService被定义了两次吗?

代码语言:javascript
复制
(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时被接受的模式吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-02 23:40:02

不管是谁编写的,这使得它变得不必要的复杂,仅仅声明CarWashService绝对没有好处,因为他们没有使用他们创建的额外的闭包。即使他们确实需要一个封闭的私人国家,他们有一个从外部职能。

作为一个侧面的注意,这看起来也不正确的角度。如果您真的想要一个工厂,这应该是返回构造函数,而不是它的一个实例。这看起来应该被声明为服务。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19746392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档