我有以下匿名函数:
(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() {}
但这是个坏主意,因为它们将在全球空间中......
如何将匿名空间传递给外部函数?