箭头函数不绑定this,箭头函数没有自己的this关键字
如果在箭头函数中使用this
this关键字将指向箭头函数定义位置中的this
function fn(){
console.log(this);
return()=>{
console.log(this);
}
}
//fn()只有这行没有下面的就会输出window
const obj={name:'zhangsan'};
const resFn=fn.call(obj);
resFn();
结果:都指向obj
面试题
//如果有这一行输出100,没有这一行输出undefined
var age=100;
var obj={
age:20,
say:()=>{
alert(this.age)
}
}
obj.say();
因为箭头函数是在obj里面,但是对象是不能产生作用域的,
say方法实际上是定义在了全局作用域下