上一篇关于ES6的函数扩展中,在箭头函数部分提到了箭头函数的一些注意点,涉及到了箭头函数中this的指向,不能new实例等,下面详细记录一下箭头函数和普通函数的区别,以及new原理
1.箭头函数与普通函数的区别
(1)区别
a.外形不同
// 普通函数
function fn = function() {
}
// 箭头函数
let fn = () => {
}
b.箭头函数都是匿名函数
- 普通函数可以是具名函数,也可以是匿名函数;
- 箭头函数只能是匿名函数。
// 普通函数 - 具名函数
function fn() {
}
// 普通函数 - 匿名函数
const fn = function (){
}
// 箭头函数 - 匿名函数
const fn = () => {
}
c.箭头函数不能用于构造函数,不能使用new
- 普通函数可以用于构造函数,使用new创建实例。
function P() {
console.log('name')
}
const p = new P() // na