分配返回函数



我是javascript的新手,我看到了这样的代码。

<button onclick="this.onClickDoSmth">Click me</button> 
onClickDoSmth = () => {
let a = this.clicked();
a();
}
clicked = () => {
console.log("test"); 
}

将"a"的表达式替换为

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

首先需要更正。它应该是let a = this.clicked;而不是let a = this.clicked().前者意味着您将返回函数分配给变量a并在稍后使用a()执行它。所以如果你这样做,就没有区别了。

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

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

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

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


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

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

前者使用 赋值一个函数,如果你想再次重用,可以调用该变量。后者只是立即调用该函数。两者都将实现相同的输出。

最新更新