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箭头函数的问题不起作用,是的,我确实声明了它[重复]的主要内容,如果未能解决你的问题,请参考以下文章

八千字入门ECMAScript 6.0(落灰文章~)

ES6箭头函数(节选自《ECMAScript 6 入门》)

浅尝ECMAScript6

ECMAScript 6.0

ECMAscript中的箭头函数

ES6语法~解构赋值箭头函数