自从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个人笔记 公众号
网友评论