JavaScript中箭头函数和普通函数的区别?记住别再搞混了

关于Es6箭头函数和普通函数的区别从以下几个方面进行介绍。

关于Es6箭头函数和普通函数的区别从以下几个方面进行介绍。

JavaScript中箭头函数和普通函数的区别?记住别再搞混了

首先在样式上

同样的函数,用普通函数表示是这样的:

let sayHello = function(value){
    return value
}

箭头函数表示是这样的:

let sayHello = (value) => {
    return value
}

如果箭头函数中有一个参数,可以直接将小括号省略,如果return后返回仅有一个表达式,可以直接省略return和大括号,将箭头函数再次简化成这样:

let sayHello = value => value

所以,从形式上来看,箭头函数比普通函数更加简洁,简化了函数定义。

匿名函数

在声明的时候可以发现,箭头函数没有函数名,它相当于一个匿名函数。它不能用作构造函数,不能使用new关键字。

可以看到下面的演示,会发现FunName并不是一个构造函数。

JavaScript中箭头函数和普通函数的区别?记住别再搞混了

arguments

箭头函数里,arguments也不让用,只有使用ES6语法里的扩展符才能读取参数,参照演示图中的FunC函数部分。

JavaScript中箭头函数和普通函数的区别?记住别再搞混了

this指向问题

对于普通函数的this指向问题,一般秉持的原则就是 谁调用,this就指向谁 。如果直接调用函数sayHello 相当于是window.sayHello(),所以this指向就是window。

如果使用call函数改变this指向,将this指向了对象obj,那么调用后this便指向obj。

JavaScript中箭头函数和普通函数的区别?记住别再搞混了

但是,这种情况并不会出现在箭头函数中。箭头函数中没有绑定this,它是通过捕捉上下文中的this值来当做自己的this。

所以说,箭头函数的this指向不能使用call()、bind()、apply()方法来改变。

此外,箭头函数没有原型属性,函数的prototype是undefined状态。

JavaScript中箭头函数和普通函数的区别?记住别再搞混了

以上就是JavaScript中箭头函数和普通函数的主要区别。如果觉得有帮助,欢迎点赞、评论、转发,可以点击关注,我也会积极互关!

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/87210.html

(0)
上一篇 2024-10-07 05:29
下一篇 2024-10-07 06:44

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信