js,ecmascript 6 箭头函数的问题不起作用,是的我确实声明了它



这是一个函数,假设当我在网站上移动鼠标时,它会在网站上显示日期,我现在正在学习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=``;
}

您必须将您的函数移到使用之上,在您的代码中:

//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);

问题与吊装有关。时间和隐藏都是在事件侦听器之后设置的。而当浏览器";起重机";在代码的顶部,它们都保持未初始化状态。它们仍然存在,在addEventListener使用它们时没有定义值。解决方案如Ester所述。在声明Time和hide之后移动addEventListener。

最新更新