公開モジュール パターンを使用して、非静的プライベート変数への直接アクセスを提供するにはどうすればよいですか? ここに私が持っているものがあります:
var M = function () {
var obj = {};
var arr = [];
var change = function () {
obj = {"key":"if I see this, O is a reference to obj"};
arr.push("If I see this, A is a reference to arr")
};
return {
change: change,
O: obj,
A: arr
};
}();
M.change();
console.log(M.A); // prints ["If I see this, A is a reference to arr"]
console.log(M.O); // prints Object {}, wanted "if I see this, O..."
A は arr を直接参照するようですが、O は初期化時に obj の値のコピーに落ち着きます。obj が string、float、または boolean の場合の動作は理解できます。
もちろん、パブリックな get_obj メソッドを介して obj を公開することもできますが、ヘルプ メソッドを追加せずにこれを解決できるかどうか、まだ興味があります (obj へのインターフェイスをそのまま維持したい)。さらに、オブジェクトが持たない配列の何が特別で、この動作を引き起こすのでしょうか?
洞察力に本当に感謝します。