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

Posted by 黎子豪 on November 4, 2023

箭头函数(Arrow Function)与普通函数(Regular Function)在语法和功能上有一些区别。

  1. 语法简洁性:箭头函数使用箭头(`=>`)来定义函数,语法更加简洁,可以省略`function`关键字和大括号。例如:
     
     // 普通函数
     function add(a, b) {
     return a + b;
     }
    
     // 箭头函数
     const add = (a, b) => a + b;
     
     
  2. this 绑定:箭头函数没有自己的 `this` 值,它会捕获当前上下文的 `this` 值,即定义时所在的对象或函数。而普通函数的 `this` 值在运行时根据调用方式动态确定。箭头函数也不支持call()与apply()函数特性。
  3. arguments 对象:箭头函数没有自己的 `arguments` 对象,但可以使用剩余参数(rest parameters)来达到类似的效果。普通函数则有自己的 `arguments` 对象。
  4. 箭头函数不能用作构造函数(constructor)或生成器函数(generator function)。
  5. 箭头函数没有原型属性(prototype property)。

总的来说,箭头函数适用于简单的函数表达式和回调函数的定义,具有简洁的语法和固定的上下文绑定;而普通函数则适用于更复杂的函数逻辑、作为构造函数和对象方法等场景,具有更多的语法特性和灵活性。