Ale*_*yuv 2 javascript oop pointers scope anonymous-function
我有以下匿名功能:
(function() {
var a = 1;
var b = 2;
function f1() {
}
function f2() {
}
// this => window object!
// externalFunction(this);
})();
function externalFunction(pointer) {
// pointer.f1(); => fail!
}
Run Code Online (Sandbox Code Playgroud)
我需要从这个匿名函数调用外部函数,并将它的指针传递给调用函数f1和f2.但我不能这样做,因为这引用了窗口对象而不是内部范围.
我可以将功能设置为:
this.f1 = function() {}
Run Code Online (Sandbox Code Playgroud)
但这是个坏主意,因为他们将在全球空间......
如何将匿名空间传递给外部函数?
我仍然想知道为什么你要把功能变成私人的,外面需要的......但是你去了:
(function() {
var a = 1;
var b = 2;
var obj = {
f1: function() {
},
f2: function() {
}
}
externalFunction(obj);
})();
function externalFunction(pointer) {
pointer.f1(); // win
}
Run Code Online (Sandbox Code Playgroud)
或者您可以单独传递f1和f2,然后您不需要将它们放入对象中.
| 归档时间: |
|
| 查看次数: |
3294 次 |
| 最近记录: |