js,ecmascript 6箭头函数的问题不起作用,是的,我确实声明了它[重复]
Posted
技术标签:
【中文标题】js,ecmascript 6箭头函数的问题不起作用,是的,我确实声明了它[重复]【英文标题】:js,ecmascript 6 problem with the arrow function don't work,yes i did declared it [duplicate] 【发布时间】:2020-11-11 10:30:12 【问题描述】:这是一个假设当我在它周围移动鼠标时在网站中显示日期的函数,我现在正在学习 es6,并且很高兴使用新的函数使用方式,但由于某种原因它不起作用,我如果有人帮助我理解为什么它不起作用/ =,我会很高兴。
哦,如果有帮助,我还复制了错误 "Uncaught ReferenceError: Cannot access 'Time' before initialization"
不知道如何处理。
//Time script
const question = document.querySelector(`.timeleftstyle`)
question.addEventListener(`mouseover`,Time);
question.addEventListener(`mouseout`,hide);
const Time = () =>
const clock = document.querySelector(`.thetime`);
clock.innerhtml=Date();
const hide = () =>
const clock = document.querySelector(`.thetime`);
clock.innerHTML=``;
【问题讨论】:
你试过简单地用谷歌搜索错误信息吗? 【参考方案1】:您必须在代码中将函数移到 using 之上:
//Time script
const question = document.querySelector(`.timeleftstyle`)
const Time = () =>
const clock = document.querySelector(`.thetime`);
clock.innerHTML=Date();
const hide = () =>
const clock = document.querySelector(`.thetime`);
clock.innerHTML=``;
question.addEventListener(`mouseover`,Time);
question.addEventListener(`mouseout`,hide);
【讨论】:
【参考方案2】:问题与吊装有关。 Time 和 hide 都是在您的事件侦听器之后设置的。虽然浏览器将两者都“提升”到代码的顶部,但它们仍然未初始化。它们仍然存在,在您的 addEventListener 使用它们时没有定义的值。解决方案正如 Ester 已经说过的那样。在声明 Time 和 hide 之后移动 addEventListener。
【讨论】:
以上是关于js,ecmascript 6箭头函数的问题不起作用,是的,我确实声明了它[重复]的主要内容,如果未能解决你的问题,请参考以下文章