箭头函数和普通函数的区别

发布时间 2023-08-03 15:22:51作者: Wanker

1、普通函数

定义:编程中常见的一种函数类型,也被称为一般函数或普通方法。它们是一系列执行特定任务的代码块或子程序。普通函数通常包含输入参数和返回值,用于接收输入数据、进行处理,并返回结果。

      // 这里的name是指函数名(自取)
      function name(参数) {
        // 函数体
        return XX;
      }
      //  调用函数
      name(参数)

特点:普通函数可以是匿名函数(就是没有函数名的函数),也可以是具体名函数。

this指向:在普通函数中,this总是指向调用它的对象,如果用作构造函数,this指向创建的对象实例。

2、箭头函数

定义:箭头函数是一种在JavaScript中引入的一种特殊的函数表达式语法,它提供了更简洁的语法形式来定义函数。箭头函数使用箭头符号(=>)来替代传统的函数关键字(function)。

  // 这里的name是指函数名(自取)
      const name = (参数) => {
        // 函数体
        return XX;
      };
      //  调用函数
      name(参数);

特点:箭头函数是匿名函数(就是没有函数名的函数),不能作为构造函数,不能使用new,带有语法糖。

语法糖:

① 形参只有一个:省略小括号

      const name = x => {
        return x++;
      };

② 函数体只有一行:省略{return}

      const name = x => x++;

this指向:箭头函数本身没有this,按照作用域链的就近原则到上级作用域查找,可以捕获其所在上下文的this供自己使用。

3、实参和形参

注:定义函数时的参数是形参;只有调用函数时传入的参数才是实参。

实参:在调用函数的时候真正传进去要进行运算的值(真实的数据)

形参:占位的参数,在封装的函数里面会用到 这个形式参数来代表之后函数真正传进来的值进行运算。

4、区别

① 外形不同:箭头函数使用箭头定义,普通函数中没有;

② 箭头函数都是匿名函数,而普通函数可以是匿名函数,也可以是具体名函数;

③ 普通函数可以用于构造函数,以此创建对象实例;箭头函数不能用于构造函数,不能使用new;

④ 箭头函数的 this 永远指向其上下文的 this,而普通函数的this指向调用它的那个对象。