你不知道的箭头函数

2019-02-07  本文已影响47人  wade3po

自从es6出了箭头函数之后,在我所见的能支持es6或者能间接支持es6的各种项目也好,各种大佬教学也好,几乎都用上了箭头函数。

箭头函数给我们最大的一个用法就是更简洁了和this的指向问题,单其实箭头函数跟普通函数比起来还是有一些我们没注意过的地方。

Es6的语法,我就不说了,相信很多人都用的很熟练了。这边说说它的好处或者说是优点和一些我们平时用不到的东西。

Es6箭头函数更简短:

把function变成了=>,在一些情景下还可以省略()和{},所以更简洁是可见的。

This的指向:

用箭头函数的大部分是冲着这个来的,可以说是监听函数最大的作用了。监头函数不会创建自己的this,它会一层一层网上查找,直到不是箭头函数所在的作用域的this。

call、apply、bind无效:

因为箭头函数没有自己的this,所以用call、apply和bind去改变this指向是无效的,只能传递参数。通过call、apply、bind调用会被忽略第一个参数。

没有arguments:

var foo=(a,b)=>{return arguments[0]*arguments[1]}

console.log(foo(6,7))

直接输出undefined,因为箭头函数是没有arguments的。

不能new:

箭头函数不能作为构造器去new一个对象,会直接报错。

没有原型:

我们知道在JavaScript中所有对象都有原型prototype,,而箭头函数没有,你打印输出原型得到undefined。

不能换行:

箭头函数的参数和箭头不能换行

Var fun = ()

=> 1

这样是不对的。

箭头函数还有另外好几个是用不上的概念,这边只是结束一下我们应该了解的,虽然开发的时候可能不会涉及。

欢迎关注Coding个人笔记 公众号

上一篇下一篇

猜你喜欢

热点阅读