Javascript 分配返回函数

Javascript 分配返回函数,javascript,Javascript,我是javascript新手,我见过这样的代码 <button onclick="this.onClickDoSmth">Click me</button> onClickDoSmth = () => { let a = this.clicked(); a(); } clicked = () => { console.log("test"); } 前者使用赋值函数,如果希望再次重用,则调用该变量。后者只是立即调用该函数。两者将实现相同的输出 首先需要

我是javascript新手,我见过这样的代码

<button onclick="this.onClickDoSmth">Click me</button> 

onClickDoSmth = () => {
let a = this.clicked();
a();
}

clicked = () => {
console.log("test"); 
}

前者使用赋值函数,如果希望再次重用,则调用该变量。后者只是立即调用该函数。两者将实现相同的输出

首先需要进行校正。它应该是
let a=this.clicked
而不是
让a=this.clicked()
。前者意味着将返回函数赋给变量
a
,然后用
a()
执行它。所以,如果你这样做,没有区别

onClickDoSmth = () => {
    let a = this.clicked; //This has to be corrected
    a();
    }

    clicked = () => {
    console.log("test"); 
    }

不同之处在于,前一个版本从函数中收到了一些东西,而后一个版本没有。

这意味着
a
的值接收
This的内容。单击
函数返回
this。单击的
必须返回一个函数,以便以后可以由
a()
调用它

onClickDoSmth = () => {
    let a = this.clicked();
    a();
}

这意味着
onClickDoSmth
是一个函数。执行后,运行
this。单击

onClickDoSmth = () => {
   this.clicked();
}

请参阅“正常功能与箭头功能”-许多重复项。还可以搜索“thisinjavascript”。您发布的代码段中没有函数声明。
onClickDoSmth = () => {
   this.clicked();
}