登录
首页 >  文章 >  前端

箭头函数特点与普通函数区别详解

时间:2026-01-22 22:43:34 328浏览 收藏

偷偷努力,悄无声息地变强,然后惊艳所有人!哈哈,小伙伴们又来学习啦~今天我将给大家介绍《箭头函数特点及与普通函数区别解析》,这篇文章主要会讲到等等知识点,不知道大家对其都有多少了解,下面我们就一起来看一吧!当然,非常希望大家能多多评论,给出合理的建议,我们一起学习,一起进步!

箭头函数是ES6引入的简写语法,无独立this、arguments、super和new.target,不可作为构造函数;其this词法绑定外层作用域,适合回调防丢失,但需动态this、构造调用、arguments或继承时须用普通函数。

javascript中箭头函数有何特点_它和普通函数有什么区别

箭头函数是 ES6 引入的简写函数语法,核心特点是没有自己的 this、arguments、super 或 new.target,且不能用作构造函数。它和普通函数在行为上有本质差异,不只是写法更短。

this 绑定方式不同

普通函数的 this 在调用时动态绑定,取决于调用方式(如 obj.fn() 中 this 指向 obj);而箭头函数的 this 是词法绑定的——它继承外层作用域的 this 值,且不可被 call、apply、bind 改变。

  • 适合用在回调中避免 this 丢失,比如事件处理或定时器里
  • 但若需要动态 this(如对象方法、构造器内部),就不能用箭头函数

没有 arguments 对象

箭头函数内部访问不到 arguments,但可以用剩余参数(...args)替代:

  • function sum() { return Array.from(arguments).reduce((a, b) => a + b); }
  • const sum = (...args) => args.reduce((a, b) => a + b);

不能作为构造函数使用

箭头函数没有 prototype 属性,调用 new 会直接报错:TypeError: xxx is not a constructor

  • 所有需要 new 实例化的场景(如定义类、工厂函数)必须用普通函数
  • 想模拟类行为时,得用 class 或 function 声明

没有 new.target 和 super

箭头函数不支持 new.target(判断是否被 new 调用),也无法在子类中通过 super() 调用父类构造器。

  • 涉及继承逻辑的方法(如子类构造器、静态方法中的 super)不能写成箭头函数
  • 类内部定义的箭头函数方法,this 指向实例,但无法访问 super

不复杂但容易忽略:写箭头函数前,先问自己——这里需不需要独立的 this?会不会被 new 调用?要不要 arguments 或 super?满足任一“要”,就该用普通函数。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于文章的相关知识,也可关注golang学习网公众号。

前往漫画官网入口并下载 ➜
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>