一:箭头函数全是匿名函数,普通函数也可以有匿名函数,也可以有具名函数。
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: ƒ}
本文深入探讨了JavaScript中箭头函数的独特性质,包括其作为匿名函数的本质,无法用作构造函数,this绑定行为,以及缺乏原型属性等关键特性。
919

被折叠的 条评论
为什么被折叠?



