【发布时间】:2012-09-04 11:18:46
【问题描述】:
我的 javascript 模块中有以下代码,但这需要我使这些函数对外界可见。
var mymodule = function() {
var self = null,
init = function () {
self = this;
$('.actionButton').click(function () {
var worklistId = $(this).data('worklistid'),
action = $(this).data('action');
self[action] && self[action](worklistId); //watchout methods marked as not used are used by this invocation
})
},
send = function () {
// some logic
},
finish = function () {
// some logic
},
delete = function () {
// some logic
};
return {
init: init,
send: send,
finish: finish,
delete: delete
};
}();
mymodule.init();
所以我唯一想在我的模块中返回的是 init 函数。但是,当我这样做时,我无法调用函数,因为对象(自身)仅包含在外部可见的 init 函数。
return {
init: init
};
是否有任何解决方案可以像这样调用我的函数而不使它们对外界可见?请不要使用 if else 语句,因为我的工作流程比本示例中的 3 个操作要大。我想让我的模块尽可能的封闭,因为这样可以减少依赖。
更新
这是一个更新的 jsfiddle,其中包含一个建议的解决方案,但这给了我另一个问题。 http://jsfiddle.net/marcofranssen/bU2Ke/
【问题讨论】:
标签: javascript jquery