脚本宝典收集整理的这篇文章主要介绍了js中箭头函数和普通函数的区别,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
一、前言
首先看下直观的区别
// 箭头函数
let fun = () => {
console.log('lalalala');
}
// 普通函数
function fun() {
console.log('lalla');
}
二、定义
首先我认为箭头函数是匿名函数,不能作为构造函数,不能使用new
然后借鉴阮一峰老师的es6教程里第七章(函数扩展)里面的第五小节箭头函数来看看他的定义
箭头函数有几个使用注意点。
- 函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。
- 不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。
- 不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替。
- 不可以使用yield命令,因此箭头函数不能用作 Generator 函数。
上面四点中,第一点尤其值得注意。this对象的指向是可变的,但是在箭头函数中,它是固定的。
把动态this转换为静态this
- 长期以来,JavaScript 语言的this对象一直是一个令人头痛的问题,在对象方法中使用this,必须非常小心。箭头函数”绑定”this,很大程度上解决了这个困扰。
- 箭头函数可以让this指向固定化,这种特性很有利于封装回调函数。
原理: this指向的固定化,并不是因为箭头函数内部有绑定this的机制,实际原因是箭头函数根本没有自己的this,导致内部的this就是外层代码块的this。正是因为它没有this,所以也就不能用作构造函数。
总结
以上是脚本宝典为你收集整理的js中箭头函数和普通函数的区别全部内容,希望文章能够帮你解决js中箭头函数和普通函数的区别所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。