首页 > 试题广场 >

箭头函数和function有什么区别

[问答题]

箭头函数和function有什么区别

箭头函数和普通函数的区别:

1. 箭头函数只能是匿名函数。

2. 箭头函数不能用于构造函数,不能用new创建实例对象。

3. 箭头函数的this从其所在上下文捕获,而普通函数拥有自己的this。注意:箭头函数的this一旦被捕获,就不会再发生改变,call、apply、bind均无法改变。

4. 箭头函数没有arguments参数,取而代之的是三点运算符(...)

function A(a){

console.log(arguments);

}

A(1,2,3,4,5,8); // [1, 2, 3, 4, 5, 8, callee: ƒ,Symbol(Symbol.iterator): ƒ]


let B = (b)=>{

console.log(arguments);

}

B(2,92,32,32); // Uncaught ReferenceError:arguments is not defined


let C = (...c) => {

console.log(c);

}

C(3,82,32,11323); // [3, 82, 32, 11323]


5. 箭头函数不能使用Generator函数,不能使用yeild关键字。

6. 箭头函数不具有prototype原型对象。

7. 箭头函数不具有super。

8. 箭头函数不具有new.target。


细节可以参照:【箭头函数与普通函数的区别详解_小弦的博客的博客-CSDN博客_箭头函数和普通函数的区别】https://blog.csdn.net/qq_42258904/article/details/110083064

编辑于 2021-03-12 11:44:02 回复(0)
复读机?
发表于 2020-09-25 20:06:30 回复(0)
箭头函数没有绑定自己的this,在箭头函数中调用this,仅仅是沿着作用域链想上找,找到最近的一个this拿来使用
发表于 2020-07-24 10:55:53 回复(0)
<p>箭头函数没有绑定自己的this,在箭头函数内调用this的时候,会沿着作用域链往上找,找最近的this</p>
发表于 2020-04-28 12:55:14 回复(0)