gpt4 book ai didi

Javascript从模块内部访问全局变量

转载 作者:行者123 更新时间:2023-12-02 20:50:00 27 4
gpt4 key购买 nike

我试图从模块内部访问全局变量或函数,但它仍然会写入 testFunction 未定义的错误。

index.html:
<script src="main.js" type="module">

main.js:
import { runTestFunction } from './js/TestModule.js';
function testFunction() {
alert('hello');
}
runTestFunction();

TestModule.js:
export function runTestFunction() {
testFunction();
}

最佳答案

您在 main.js 中声明 testFunction() 但您尝试在 TestModule.js 中调用它

您有几个选择:

  1. 在 TestModule.js 中声明 testFucntion()
  2. runTestFunction() 中实现 testFunction() 的主体
  3. 如果您需要在 main.js 中声明一个函数,然后在 TestModule.js 中调用它,则将其作为参数传递给 runTestFunction(),如下所示:

:

TestModule.js:
export function runTestFunction(testFunction) {
testFunction();
}

main.js:
import { runTestFunction } from './js/TestModule.js';
const testFunction=()=>{
alert('hello');
}
runTestFunction(testFunction);

编辑:跟进您对作用域链的评论。

之所以“未声明”,是因为您在声明之前进行了导入。代码是从上到下执行的。这意味着该函数是在您尝试引用它之后声明的。

关于Javascript从模块内部访问全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61632026/

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