一:箭头函数全是匿名函数,普通函数也可以有匿名函数,也可以有具名函数。
function a(){
//code //普通具名函数
}
let a = function(){
//code //普通匿名函数
}
let a=()=>{
//code //箭头函数
}
二:箭头函数不能用于构造函数,不能使用new。
三:箭头函数不绑定this,会捕捉其所在上下文的this指,会作为自己的this值, 没有办法改变其指向
var obj = {
a: 10,
b: () => {
console.log(this.a); // undefined
console.log(this); // Window {postMessage: ƒ, blur: ƒ, focus: ƒ, close: ƒ, frames: Window, …}
},
c: function() {
console.log(this.a); // 10
console.log(this); // {a: 10, b: ƒ, c: ƒ}
}
}
obj.b();
obj.c();
四:箭头函数没有原型属性
var a = ()=>{
return 1;
}
function b(){
return 2;
}
console.log(a.prototype); // undefined
console.log(b.prototype); // {constructor: ƒ}