gpt4 book ai didi

javascript通过脚本标签定义范围?

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

从来没有遇到过这个问题,也不知道为什么。唯一的解释是范围问题。

在同一个页面中,我有 2 个 JS 部分:

...
<script type="text/javascript">
go();
</script>

<script type="text/javascript">
function go()
{ alert(''); }
</script>
...

这会显示一个错误:go is not defined

在哪里

...
<script type="text/javascript">
go();

function go()
{ alert(''); }
</script>
...

正在工作(显然)。

是否 <script>标签创建一个 JS 范围?帮助?

最佳答案

这不是范围问题。如果您在一个脚本元素中定义了一个函数(在全局范围内),那么您可以在另一个脚本元素中使用它。

但是,脚本元素会在遇到时被解析和执行。

提升不适用于脚本元素。在较早脚本元素的初始运行期间,稍后脚本元素中定义的函数将不可用。

您要么需要交换脚本元素的顺序,要么将函数调用延迟到定义它的脚本运行之后(例如,通过将其附加到 onload 事件处理程序)。

<script>
function go() {
alert('');
}
</script>
<script>
go();
</script>

<script>
window.addEventListener("load", function () {
go();
}, false);
</script>
<script>
function go() {
alert('');
}
</script>

关于javascript通过脚本标签定义范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10968917/

24 4 0