如何使用箭头功能来提醒某些事情

How to use arrow function to alert something

我有这张图片和那个功能 onclick

<img src="assets/images/logo.svg" id="logo" onclick="alertPlay()">

如果我创建以下功能,它不应该起作用吗?

const alertPlay => alert("play");

如果不是,也许我只是对一般的箭头函数感到困惑。

另外,有没有shorthand,比如

<img src="assets/images/logo.svg" id="logo" onclick="alert('play')">

你的function会是

const alertPlay = (message) => alert(message);

还有 HTML

<img src="assets/images/logo.svg" id="logo" onclick="alertPlay('play')">

您使用了错误的语法。 () => alert("play"); 是函数体。您需要使用 =.
将其分配给变量 OP 在评论中问道:此外,为什么我要将 () 放在 ==> 之间:
因为 docs

描述的正确语法

The parameter list for a function with no parameters should be written with a pair of parentheses.

const alertPlay = () => alert("play");
<img src="assets/images/logo.svg" id="logo" onclick="alertPlay()">

更新一点:

你需要像这样使用:

const alertPlay = () => () => alert("play");

在您的 html 中,它应该只是:(不需要括号)

onclick="alertPlay"

如果您想传递动态值而不仅仅是 play,您需要使用类似:

const alertPlay = (str) => () => alert(str);

HTML:

onclick="alertPlay('play')"

第二个箭头功能块是传递事件,如果您愿意:

const alertPlay = (str) => (e) => {
  console.log(e, str);
}

符合您兴趣的实际答案:

顺便说一句,() => () => {} 是一个 public class method。否则,您可以使用内联箭头函数,如:

onclick="() => alertPlay('play')"

JS:

const alertPlay = (str) => alert(str);

或不带任何参数:

const alertPlay = () => alert('play');

HTML:

onclick="alertPlay()"

我将尝试解释您可以使用的箭头函数的所有部分。

const funcName = (parameters) => alert('message');

const funcName 表示函数的名称,它是不可变的,如果您尝试重新分配它的值,则会引发错误。

=(参数)=> alert('message');

给funcName赋值,首先是函数所有参数的括号,括号前用箭头代替function关键字和alert('message');就是你要运行的javascript。您的 javascript 代码可能会更长,然后您可以使用方括号{}。

工作示例:

<img src="assets/images/logo.svg" id="logo" onclick="alertPlay('play')">

const alertPlay = (message) => alert(message);