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

箭头函数与普通函数的区别就会说到this的指向问题 接下来进入正题 

JS中的this指向

1,浏览器里 在全局的范围内 this 指向window对象 如果没有调用的话this也指向window 对象

2,在函数中 this永远指向最后调用他的那个对象

3,构造函数中 this指向new出来的那个新的对象

4,call  apply  bind  中的this被强行绑定在指定的那个对象上

这就又要说一下 call apply bind 

bind 返回一个改变this指向之后的新的方法,需要手动调用

call 改变this指向 直接执行 后面自由传参

apply 改变this指向 直接执行 后面跟数组

箭头函数中的this指向

箭头函数中的this指向比较特殊 箭头函数的this指向是静态的 在声明的时候就已经确定了 指向父级的上下文  而且还不会被call apply bind 三者改变this指向 但是可以正常传参

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

1,箭头函数的this不会在调用的时候被改变 因为箭头函数在声明的时候就已经确定下来了 指向父级上下文

2,箭头函数是匿名函数 不能作为构造函数使用 也不能使用new

3,箭头函数还没有原形属性

4,箭头函数内部没有arguments属性 可以用展开运算符...来解决

5,箭头函数也不能通过call() apply() bind() 方法修改箭头函数的this指向 但是可以正常传参

普通函数的arguments和类数组转换成数组

箭头函数

let fn = (...args)=>{ 
// console.log(arguments);//这里会报错因为箭头函数里面arguments属性 arguments is not defined
            console.log(args); 
        }
        fn(1,2,3)

普通函数

function fn(){
   console.log(arguments);
}
  fn(1,2,3)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值