1.箭头函数中的this在定义时就确定了,指向的是当前函数定义作用域,不是在执行时确定的
var y = 22;
var obj1 = {
y: 33,
fn:function(){
return function(){
return this.y;//22 这是匿名函数,this是在执行时确定的
}
}
}
var obj2 = {
y: 77,
fn:function(){
return ()=>{
return this.y;//77 这是箭头函数,this在定义时就确定了,指向当前函数定义作用域
}
}
}
console.log(obj1.fn()());//22
console.log(obj2.fn()());//77
2.不会随着函数的挂载改变而改变
let obj = {
y: 77,
fn:function(){
return ()=>{
return this.y;
}
}
}
let temp = {y:88};
console.log(obj.fn().call(temp));//77不会随着挂载改变而改变
本文解析了JavaScript中箭头函数的this指向问题,说明箭头函数中的this在定义时即已确定,始终指向定义时的作用域,而非执行时的上下文。此外,还介绍了箭头函数的this不会因调用方式的变化而变化。

2022

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



