gpt4 book ai didi

javascript匿名函数作用域

转载 作者:行者123 更新时间:2023-12-04 01:36:26 25 4
gpt4 key购买 nike

我有以下匿名函数:

(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() {}

但这是个坏主意,因为它们将在全局空间中......

如何将匿名空间传递给外部函数?

最佳答案

我仍然想知道为什么您要将函数设为私有(private),而这些函数是外部需要的...但是你去吧:

(function() {
var a = 1;
var b = 2;

var obj = {
f1: function() {
},
f2: function() {
}
}

externalFunction(obj);
})();

function externalFunction(pointer) {
pointer.f1(); // win
}

或者你可以单独传递 f1 和 f2,那么你不需要将它们放入对象中。

关于javascript匿名函数作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3179115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com