确定用于公开JS实用程序功能的最佳模式

时间:2016-03-25 15:47:17

标签: javascript design-patterns

我正在尝试为我们的项目构建一个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
	}
})();

上述模式的问题在于,每次添加新函数时,我都要确保将其添加到返回块以使其暴露,我认为这是一种多余的工作。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用JavaScript模块模式。 使用要公开的函数创建对象,并将函数直接添加到此对象。例如:

var objUtils = (function () {
    var moduleObj = {};

    moduleObj.foo = function () {
        // ...
    };

    moduleObj.bar = function () {
        // ...
    };

    return moduleObj;
}());