基础-箭头函数的理解

122 阅读2分钟

什么是箭头函数?很多人就说没有this,啊对对对,没有this。嗯算了,先后退一步。什么是函数?在小学初中是这么写的 y=2xy=2x对吧,给定一个变量来求y。到了高中大学,又是这么写的 f(x)=4x+1f(x)=4x+1,那定义在非空数集之间的映射便称为函数。很纯粹,就是为了通过给定的未知数来算出结果,纯粹的数据计算。

在前端,js这门语言里,来来回回就是数据流程。数据就是各种数据类型了,流程呢就是各个数据的组装,而函数就是对流程的封装。一套流程可能会多次使用,那就使用把他们封装起来,叫一个名字,那就是函数。对吧,这样一来直接使用函数就可以解决那一种流程,比如说求和, f(x)=4x9f(x)=4x-9。 但是js中的函数简单吗?涉及到原型、原型链、构造函数、this等等,这就让函数不纯粹了。

比如现在有个函数getSum,你要怎么调用?直接调用吗?那为什么不是通过new来调用。我们实际开发中,很少遇到构造函数,我们编写了很多套函数,就是用来解决某些流程的,比如处理数组,处理日期,计算数据等等,就不就是函数的本质吗?

那如何回归函数的本质呢? ES6就推出了箭头函数,这就是最纯粹的本质。

      const getSum = (x) => {
        return 2 * x + 1;
      };
      console.log("getSum", getSum(3)); //7

一般语法就是这样了,有些情况可以简化,当只有一个参数或者代码量只有一行时。

      const getSum = x => 2 * x + 1;

箭头函数的特点:

  • 没有thissuperarguments,因为没有this,所以无法通过任何手段绑定this
  • 不能使用new来调用。
  • 没有原型

这个this,就容易搞事,在某些地方使用this,在普通函数和箭头函数里就不一样,这就涉及this的指向了。