<1> 箭头函数与普通函数的区别
1) 箭头函数比普通函数更简洁
- 如果没有参数,就可以只写一个空括号
- 如果只有一个参数,就可以省略小括号
- 如果函数体的返回值只有一句,就可以省略大括号
2) 在其内部不能使用 arguments、super 和 new.target
- 在箭头函数内部使用 arguments ,其实访问的是其外层函数的 arguments 的值
3) 没有 prototype 属性
4) 没有自己的 this
箭头函数不会创建自己的 this ,它只会继承【自己作用域的上一层(即其所在的上下文)】继承this,
所以箭头函数中的 this 指向在它定义时就已经确定了,**之后都不会变!!!**
注意:
- .call() 、.apply() 、.bind() 方法也不会改变箭头函数的 this 指向!!!
5) 不能被当作构造函数进行 new 操作
因为 new 操作符的执行过程:
- 创建一个新的实例对象
- 将构造函数内部的 this 执行该新建的实例对象
- 执行该构造函数,为实例对象添加属性和方法
- 返回该对象
因为箭头函数没有自己的 this,所以第二、三步就执行不了!!!!