動的オブジェクトをクロージャーでラップし、後で、囲まれた変数を参照できるメンバーをオブジェクトに追加できるようにするにはどうすればよいでしょうか?
この例が示すようにtest.myFunct()
、囲まれたexample
変数を参照することはできません:
var example = "from global";
(function (global) {
var example = "from closure";
global.test = {};
}(this));
test.myFunct = fnction () { return example; };
test.myFunct(); // "from global"
そこで、問題を解決することを期待して加算関数を作成しようとしましたが、役に立ちませんでした:
var example = "from global";
(function (global) {
var example = "from closure";
global.test = {
add: function (name, value) { global.mJSON[name] = value; }
}
}(this));
test.add("myFunct", function () { return example; });
test.myFunct(); // "from global"
後で実行時に、囲まれたメンバーを参照できるメンバーをオブジェクトに動的に追加する方法はありますか?
必要な理由:
のjScriptエンジンにアクセスするためにmIRC のCOM 実装を使用しています。MSScriptControl.ScriptControl
mIRC を使用する際の制限により、mIRC からのコマンド実行ごとに最大 4k バイトに制限されています。そのため、 、、またはメソッドを呼び出す前に、JS ファイルを ~3500 バイト以下のチャンクに分割する必要がありScriptControl
ます。AddCode
ExecuteStatement
Eval
注:
囲まれた変数/関数の値を返す静的な「ヘルパー」関数を使用する必要はありません。