あなたのアイデアでは、ローカル スコープ内のすべての変数を一覧表示できる必要があります。残念ながら、JavaScript にはそれができません。この関連する質問を参照してください。
これが行われるのを見た2つの方法があります:
1) エクスポートするオブジェクトに変数が定義されている場合は、すべての変数をアタッチします。
var myapp = myapp || {};
myapp.utils = (function () {
var exports = {};
exports.CONSTANT_A = "FOO",
exports.CONSTANT_B = "BAR";
exports.func = function func() {}
function _privateFunc() {}
return exports;
}());
2) または、オブジェクト リテラルの最後にすべてのエクスポートを一覧表示します。
var myapp = myapp || {};
myapp.utils = (function () {
var
CONSTANT_A = "FOO",
CONSTANT_B = "BAR";
function func() {}
function _privateFunc() {}
return {
CONSTANT_A: CONSTANT_A,
CONSTANT_B: CONSTANT_B,
func: func
};
}());
実際に使用されている両方 (および 2 つの混合も) を見てきました。2 番目の方法は、より衒学的に見えるかもしれませんが、読者がコードの 1 つのセグメントを見て、その関数によって返されるインターフェイス全体を確認することもできます。