是否建议在工厂或服务中拥有可访问的成员数组:
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
答案 0 :(得分:2)
第一个版本更好,因为它更具可读性。
在这里你可以找到John Papa的一本非常好的风格指南:https://github.com/johnpapa/angular-styleguide/blob/master/a1/README.md