找回密码
 注册
首页 ≡≡网络技术≡≡ WEB前端 js(JavaScript) 箭头函数(=>)详解

js js(JavaScript) 箭头函数(=>)详解

灰儿 2022-8-3 19:00:21
js(JavaScript) 箭头函数(=>)详解

ES6 中引入了箭头函数。

箭头函数允许我们编写更短的函数

语法:

之前:

  1. hello = function() {
  2.   return "Hello World!";
  3. }
复制代码

用了箭头函数之后:

  1. hello = () => {
  2.   return "Hello World!";
  3. }
复制代码

确实变短了!如果函数只有一个语句,并且该语句返回一个值,则可以去掉括号和 return 关键字:

箭头函数默认返回值:

  1. hello = () => "Hello World!";
复制代码

注释:这仅在函数只有一条语句时才有效。

如果您有参数,则将它们传递到括号内:

带参数的箭头函数:

  1. hello = (val) => "Hello " + val;
复制代码

事实上,如果只有一个参数,您也可以略过括号:

不带括号的箭头函数:

  1. hello = val => "Hello " + val;
复制代码

this 怎么办?

与常规函数相比,箭头函数对 this 的处理也有所不同。

简而言之,使用箭头函数没有对 this 的绑定。

在常规函数中,关键字 this 表示调用该函数的对象,可以是窗口、文档、按钮或其他任何东西。

对于箭头函数,this 关键字始终表示定义箭头函数的对象。

让我们看两个例子来理解其中的差异。

这两个例子都调用了两次方法,第一次是在页面加载时,第二次是在用户单击按钮时。

第一个例子使用常规函数,第二个例子使用箭头函数。

结果显示第一个例子返回两个不同的对象(window 和 button),第二个例子返回两次 window 对象,因为 window 对象是函数的“所有者”。


实例

对于常规函数,this 表示调用该函数的对象:

  1. // 常规函数:
  2. hello = function() {
  3.   document.getElementById("demo").innerHTML += this;
  4. }

  5. // window 对象调用该函数:
  6. window.addEventListener("load", hello);

  7. // button 对象调用该函数:
  8. document.getElementById("btn").addEventListener("click", hello);
复制代码

实例

用了箭头函数,则 this 表示函数的拥有者:

  1. // 箭头函数:
  2. hello = () => {
  3.   document.getElementById("demo").innerHTML += this;
  4. }

  5. // window 对象调用该函数:
  6. window.addEventListener("load", hello);

  7. // button 对象调用该函数:
  8. document.getElementById("btn").addEventListener("click", hello);
复制代码

使用函数时请记住这些差异。有时,常规函数的行为正是您想要的,如果不是,请使用箭头函数。



您需要登录后才可以回帖 登录 | 注册
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。