箭头函数的理解

箭头函数的理解

一、形式理解:
1.定义方式function变成=>
例:
a.普通函数:function (){}
b.箭头函数:()=>{}
2.函数名匿名和具名变成匿名
例:
a.普通函数:
1)具名:
function learn(){}
2)匿名:
let learn=function(){}
b)箭头函数:
1)匿名:
let learn=()=>{}
二、用法理解:
1.不能如普通函数一样用于构造函数
例:
a.普通函数用于构造函数:
function learn(){
this.name=“Tom”
console.log(this.name)
}
let learnOne=new learn()
b.箭头函数不能使用new,用于构造函数
2.this的指代不同
a.普通函数:
1)ES5中,this永远指向最后调用它的那个对象,第一个this.age打印出30,第二个this.age打印出undefined,名字是Amy
例:
var name=“Tom”,age=30
var obj={
name:“Amy”,
objAge:this.age,
learn:function(){
console.log(this.name+“年龄”+this.age)
}
}
console.log(obj.objAge)
obj.learn()
2)用作构造函数,this指向对象本身learn{},打印值是Amy
例:
var name=“Tom”
function learn(){
this.name=“Amy”
console.log(this.name)
}
let learnOne=new learn()
b.箭头函数本身没有this,但是它在声明时可以捕获其所在上下文的this供自己使用,此处引用实例化的对象this,打印值是Amy
var name=“Tom”
function learn(){
this.name=“Amy”
let learnCopy=()=>{
console.log(this.name)
}
learnCopy()
}
let learnOne=new learn()
三、深入理解
1、箭头函数的 this 永远指向其上下文的 this ,任何方法都改变不了其指向,如 call() , bind() , apply()
2、普通函数调用后都具有一个arguments对象,用来存储实际传递的参数。但是箭头函数并没有此对象
3、箭头函数不能Generator函数,不能使用yeild关键字。
4、箭头函数不具有prototype原型对象。
5、箭头函数不具有super。
6、箭头函数不具有new.target。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值