首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >被Arrow函数迷惑

被Arrow函数迷惑
EN

Stack Overflow用户
提问于 2022-07-05 14:12:16
回答 1查看 54关注 0票数 0

为什么功能二不起作用?我不明白为什么第一个函数工作,但不是第二个。

代码语言:javascript
复制
window.addEventListener("load", () => {
  one();
})
const one = () =>{
  document.querySelector(".fun1").innerHTML = "function one";
}

window.addEventListener("load", two);
const two = () =>{
  document.querySelector(".fun2").innerHTML = "function two";
}
代码语言:javascript
复制
<p class="fun1"></p>
<p class="fun2"></p>

EN

回答 1

Stack Overflow用户

发布于 2022-07-05 14:22:29

Javascript自上而下运行,因此当设置第一个事件侦听器时,它使用一个匿名函数,重要的部分是在触发事件之前不调用该函数。

代码语言:javascript
复制
// this is the anonymous function
() => { 
  one(); 
} 

当您的第二个事件侦听器被击中时,它使用了在下面一行上定义的变量,因此它还没有在内存中。

简单的解决方案是将两个事件侦听器的定义移动到事件侦听器上面,或者像在第一个示例中那样将其包装到一个匿名函数中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72870904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档