普通函数与箭头函数的区别

发布时间 2023-07-31 02:03:08作者: kyming

1.外形区别

箭头函数有箭头  而普通函数没有箭头,箭头函数是匿名的,而普通函数可以是具名也可以是匿名,含有一个表达式时可以省略return与{},但多个表达式则不可以

2.箭头函数没有自己的this,它的this是继承上一作用域的this,(且箭头函数的this不会改变,不受bind,call,apply改变this指向)。

3.箭头函数不能作为构造函数,也就意味着它没有prototype,new也会报错。

4.箭头函数没有自己的arguments,它打印的arguments是上一作用域的arguments,它想要获取到传入的参数的话,得用剩余参数...来获取比如...arg

5.使用场景不同

箭头函数使用在简单,简洁,明确的函数里,比如简单的回调,map,filter数组方法  上下文保留:使用箭头函数可以方便地在父级作用域中保留正确的 this 上下文。这对于需要在函数内部访问外部函数的 this 值时非常有用。比如说定时器。

而普通函数一般使用在像构造函数,在对象上添加一个方法,然后去访问,复杂的回调等