如何使用箭头功能来提醒某些事情
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);
我有这张图片和那个功能 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);