es6+-箭头函数细节与应用场景

与函数表达式的区别
箭头函数

  • 更简洁的语法:箭头函数允许你用更简洁的方式书写函数。
  • 没有自己的this、arguments、super和new.target:箭头函数不绑定这些关键字,它们从封闭的词法环境中继承这些值。
  • 不能用作构造函数:由于没有自己的this,箭头函数不能用作构造函数,也就是说,不能使用new操作符。
  • 没有原型:由于不能用作构造函数,箭头函数没有prototype属性。
  • 不能改变this的绑定:call、apply和bind方法不能改变箭头函数的this值。
  • 不适用于方法:由于箭头函数不绑定this,它们不适合作为对象的方法使用。
  • 不支持arguments对象:箭头函数不绑定arguments对象,需要使用剩余参数(...rest)来获取所有传入的参数。
  • 匿名函数:箭头函数通常是匿名的,尽管可以为其指定一个名字。

函数表达式

  • 更传统的语法:函数表达式更接近于传统编程语言中函数的定义方式。
  • 有自己的this、arguments、super和new.target:函数表达式有自己的执行上下文,包括this、arguments等。
  • 可以用作构造函数:函数表达式可以用new操作符来创建对象实例。
  • 有原型:函数表达式有prototype属性,可以用来构建对象的原型链。
  • 可以改变this的绑定:可以使用call、apply和bind方法来改变函数表达式的this值。
  • 适用于方法:函数表达式可以用作对象的方法,并且this会指向调用该方法的对象。
  • 支持arguments对象:函数表达式可以访问arguments对象,它包含了函数接收到的所有参数。
  • 可以具名或匿名:函数表达式可以是具名的,也可以是匿名的。

使用场景

1、临时性使用的函数:

  • 事件处理函数
  • 异步处理函数
  • 匿名函数

2、为了绑定外层this的函数(比如定时器层级的this)

3、在不影响其他代码的情况下,保持代码间接。(比如数组方法中的函数,自行编写的回调函数)

相关推荐
今年下半年29 分钟前
【前端】Vue2 项目 ECharts 统计图表组件封装与使用实践(附组件源码)
前端·javascript·echarts
冒险的豆子33 分钟前
JS 原型链 通俗易懂 解释说明(类比 关系)
开发语言·javascript·原型模式
西索斯coding37 分钟前
在 中接入 教程:p配置、m填写、扩展思考参数一篇就够(2)
java·前端·javascript·ai
用户1733598075371 小时前
纯前端 PDF 双面打印避坑指南:翻页顺序错了整个白印?
前端·javascript·vue.js
SensorFlow1 小时前
从神策 SDK 迁移到 SensorFlow:采集层平滑迁移实战
javascript
浮生望2 小时前
从作用域链到 React 陈旧闭包:为什么函数式更新能拿到最新 state
javascript
怕浪猫2 小时前
前端转全栈最低成本的技术栈选择
前端·javascript·面试
WebInfra3 小时前
Rsdoctor 2.0 发布:Agent 驱动的全自动优化工具
前端·javascript·node.js
晨间晓3 小时前
图片到底偏什么颜色?用华为云码道开发 OpenCV 色彩偏移分析工具
javascript·opencv·华为云
鬼手点金11 小时前
nanoGPT/nanochat 能做出 DeepSeek/Qwen 这样的大模型吗?
服务器·前端·javascript·bug·openclaw