箭头函数与普通函数的区别
1、没有this,函数体内的 this 对象,就是定义时所在的对象,而不是使用时所在的对象。
2、没有原型,也就是没有 prototype
属性
3、不可以使用 arguments
对象,该对象在函数体内不存在。如果要用,可以用 rest
参数代替。
4、不可以使用 yield 命令,因此箭头函数不能用作 Generator 函数。
5、不可以使用 new 命令,因为:
- 没有自己的 this,无法调用 call,apply。
- 没有
prototype
属性 ,而 new 命令在执行时需要将构造函数的 prototype 赋值给新的对象的__proto__
属性
new的过程实现(手写实现new)
function myNew() {
let obj =