有角度的工厂或服务中的无障碍成员

时间:2016-03-08 00:42:18

标签: angularjs factory

是否建议在工厂或服务中拥有可访问的成员数组:

app.factory('myFactory', ['$http', '$q', function ($http, $q) {
    // accessible members
    var factory = {
        doSomething1: doSomething1,
        doSomething2: doSomething2
    };

    function doSomething1() {
        // do something
    };

    function doSomething2() {
        // do something
    };

    return factory;
};

与我一直在做的方式相比:

app.factory('myFactory', ['$http', '$q', function($http, $q){
    factory.doSomething1 = function() {
        // do something
    };

    factory.doSomething2 = function() {
        // do something
    };

    return factory;
};

编辑:我刚学到的第二个例子就是使用doSomething1&的函数表达式。 2(存储在var中的函数),不会被提升到执行顺序的顶部。 JavaScript只会提升直接功能。因此,如果我在函数表达式之前有我的return语句,它将返回undefined。但是在第一个例子中,javascript会将函数提升到顶部,因此在返回的位置并不重要。约翰帕帕在这里有一个很好的解释:

Angular Function Declarations, Function Expressions, and Readable Code

1 个答案:

答案 0 :(得分:2)

第一个版本更好,因为它更具可读性。

在这里你可以找到John Papa的一本非常好的风格指南:https://github.com/johnpapa/angular-styleguide/blob/master/a1/README.md