私の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
};
このような関数を外の世界に表示せずに呼び出すための解決策はありますか?私のワークフローはこの例の3つのアクションよりも大きいため、ifelseステートメントは使用しないでください。依存関係が減るので、モジュールをできるだけ閉じたいと思います。
アップデート
これは提案された解決策の1つで更新されたjsfiddleですが、これは私に別の問題を与えています。http://jsfiddle.net/marcofranssen/bU2Ke/