普通函数和箭头函数的区别
-
写法上面
// 普通函数 function func(){ // code } // 箭头函数 let func=()=>{ // code }
-
箭头函数都是匿名函数,但是普通函数可以是匿名函数也可以是具体的函数
-
箭头函数不能用于构造函数,不能new,普通函数可以用于构造函数,创建对象的实例
-
箭头函数本身是不能创建函数的,没有this,在声明的时候可以捕获函数的上下文,一旦捕获this就不能改变了。普通函数this,指向调用它的函数
-
箭头函数可以结合call/apply,如果只传一个参数不影响this的指向,普通函数会影响this的指向
-
箭头函数不能使用arguments,但是可以使用…来替代
普通函数是有的1)类数组,有有length属性和若干索引属性的对象。
类数组有:arguments和dom(childNodes和document.querySelector())
2)类数组转为真正的数组
call+数组的方法([].slice.call())、Array.from()、[…] -
箭头函数不能Generator,不能使用yeild关键字
-
箭头函数不具备prototype的原型对象
-
箭头函数不具备surper
-
箭头函数不具备new target