箭头函数和非箭头函数区别是什么?

【问】箭头函数和非箭头函数区别是什么?箭头函数函数是基于原型链的吗?

【答】箭头函数是ES6中新的函数写法,和非箭头函数相比,有如下特点:

  1. 它是匿名函数,不能使用new作为构造函数;
  2. 它的this永远继承自自身作用域链的上一层this
  3. 不绑定arguments, 使用…rest解决
  4. 没有原型属性prototype,所以不是基于原型链的

【延伸】

为了能深入了解差别,对比下非箭头函数的this:

  1. this指向它的调用者,即this指向是由执行时还不是定义时决定
  2. 如果该函数是构造函数,则this指向一个新对象
  3. 如果该函数是一个对象的方法,则this指向这个对象
  4. 可以通过call、apply等方法修改执行时的this指向

【测试】

  1. new测试
    在这里插入图片描述
  2. this指向测试
    在这里插入图片描述
  3. 测试arguments
    在这里插入图片描述
  4. 测试原型属性
    在这里插入图片描述

参考1:箭头函数MDN
参考2:箭头函数和普通函数的区别

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值