我正在尝试为我们的项目构建一个JS文件,它将公开一些通用的实用程序函数。我之前使用过以下两种模式,但完全不相信它们。
模式1
var objUtils = {
foo: function(){
//code
},
bar: function(){
//code
//foo can't be called
}
}
上述模式的问题在于我无法调用交叉调用函数。
模式2
var objUtils = (function(){
var foo = function(){
},
bar = function(){
}
return{
foo : foo,
bar : bar
}
})();
上述模式的问题在于,每次添加新函数时,我都要确保将其添加到返回块以使其暴露,我认为这是一种多余的工作。
有什么想法吗?
答案 0 :(得分:1)
您可以使用JavaScript模块模式。 使用要公开的函数创建对象,并将函数直接添加到此对象。例如:
var objUtils = (function () {
var moduleObj = {};
moduleObj.foo = function () {
// ...
};
moduleObj.bar = function () {
// ...
};
return moduleObj;
}());