【发布时间】: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
【问题讨论】: