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不会随着挂载改变而改变