【问题标题】:accessible members in an angular factory or service角度工厂或服务中的可访问成员
【发布时间】:2016-03-08 00:42:17
【问题描述】:

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

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

【问题讨论】:

    标签: angularjs factory


    【解决方案1】:

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

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

    【讨论】:

    • 哈!这正是我现在正在阅读的内容,也是我提出问题的原因。我只是不确定是否有必要在那里拥有可访问的成员。现在想想,如果你想利用提升,你必须使用函数。如果我使用函数,如果不像第一个示例中那样声明它们,它们将无法访问,对吧?
    猜你喜欢
    • 2016-07-20
    • 1970-01-01
    • 2017-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多