gpt4 book ai didi

JavaScript - 声明嵌套函数的全局范围?

转载 作者:可可西里 更新时间:2023-11-01 02:33:24 25 4
gpt4 key购买 nike

我尝试为嵌套的 JavaScript 函数提供全局范围的尝试没有奏效:

//DECLARE FUNCTION B IN GLOBAL SCOPE
function B;

function A() {

//DEFINE FUNCTION B INSIDE NEST
B() {
alert("function B is running");
}
}

//CALL FUNCTION B FROM GLOBAL SCOPE
B();

这只是好奇——你是对的,我真的没有任何充分的理由想要这样做。

TIA -- 我没有 SO 帐户来回复您的回答...

最佳答案

function B; 只会产生语法错误。

您可以使用 function expression .由于函数是一流的对象,您可以将函数分配给变量:

var B; // declare (global) variable (outer scope)

function A() {
// assign a function to it
B = function() {
alert("function B is running");
};
}

// we have to call A otherwise it won't work anyway
A();
// call B
B();

你也可以让 A 返回一个函数:

function A() {
return function() {
alert("function B is running");
};
}

B = A();

这将使 AB 之间的关系更加清晰。

当然,您始终可以通过省略 var 来定义全局变量,但是您应该非常小心地使用它。尽可能少地使用全局变量。

function A() {
B = function() {
alert("function B is running");
};
}

而且我敢打赌,有更好的方法可以做到这一点,具体取决于您的实际目标。


More about Functions and function scope.

关于JavaScript - 声明嵌套函数的全局范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5198579/

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