私は次の無名関数を持っています:
(function() {
var a = 1;
var b = 2;
function f1() {
}
function f2() {
}
// this => window object!
// externalFunction(this);
})();
function externalFunction(pointer) {
// pointer.f1(); => fail!
}
この無名関数から外部関数を呼び出し、そのポインターを渡して関数f1とf2を呼び出す必要があります。しかし、これは内部スコープではなくウィンドウオブジェクトを参照しているため、これを行うことはできません。
関数を次のように設定できます:
this.f1 = function() {}
しかし、彼らはグローバルな空間にいるので、それは悪い考えです...
匿名スペースを外部関数に渡すにはどうすればよいですか?