# 箭头函数与普通函数(function)的区别是什么?

1、箭头函数没有 this,它会从自己的作用域链的上一层继承 this(因此无法使用 apply / call / bind 进行绑定 this 值);

2、不可以使用 arguments 对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替。

3、不可以使用 yield 命令,因此箭头函数不能用作函数生成器。

4、箭头函数没有prototype属性

5、不绑定 super(super 关键字用于访问和调用一个对象的父对象上的函数) 和 new.target(允许你检测函数或构造方法是否是通过 new 运算符被调用的)

4、箭头函数不可以使用 new 命令(主要没有[[Construct]]方法,会报错)

# 构造函数(function)可以使用 new 生成实例,那么箭头函数可以吗?

1、没有自己的 this,无法调用 call,apply。

2、没有 prototype 属性 ,而 new 命令在执行时需要将构造函数的 prototype 赋值给新的对象的 proto

# 引入箭头函数的好处?

主要有两个方面的作用:更简短的函数并且不绑定this。

# new 生成实例主要会进行哪些步骤?

1、 在内存中创建一个新对象

2、这个新对象内部的[[Prototype]]特性被赋值为构造函数的prototype属性

3、构造函数内部的this被赋值为这个新对象

4、执行构造函数内部的代码

5、如果构造函数返回非空对象、则返回该对象;否则,返回刚创建的新对象