关于Es6箭头函数和普通函数的区别从以下几个方面进行介绍。
首先在样式上
同样的函数,用普通函数表示是这样的:
let sayHello = function(value){
return value
}
用箭头函数表示是这样的:
let sayHello = (value) => {
return value
}
如果箭头函数中有一个参数,可以直接将小括号省略,如果return后返回仅有一个表达式,可以直接省略return和大括号,将箭头函数再次简化成这样:
let sayHello = value => value
所以,从形式上来看,箭头函数比普通函数更加简洁,简化了函数定义。
匿名函数
在声明的时候可以发现,箭头函数没有函数名,它相当于一个匿名函数。它不能用作构造函数,不能使用new关键字。
可以看到下面的演示,会发现FunName并不是一个构造函数。
arguments
箭头函数里,arguments也不让用,只有使用ES6语法里的扩展符才能读取参数,参照演示图中的FunC函数部分。
this指向问题
对于普通函数的this指向问题,一般秉持的原则就是 谁调用,this就指向谁 。如果直接调用函数sayHello 相当于是window.sayHello(),所以this指向就是window。
如果使用call函数改变this指向,将this指向了对象obj,那么调用后this便指向obj。
但是,这种情况并不会出现在箭头函数中。箭头函数中没有绑定this,它是通过捕捉上下文中的this值来当做自己的this。
所以说,箭头函数的this指向不能使用call()、bind()、apply()方法来改变。
此外,箭头函数没有原型属性,函数的prototype是undefined状态。
以上就是JavaScript中箭头函数和普通函数的主要区别。如果觉得有帮助,欢迎点赞、评论、转发,可以点击关注,我也会积极互关!
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/87210.html