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