箭头函数的this 指向
let p ={ num:1, add: function(a){ let f = v => { //箭头函数没有this,往上找一层的this 就是箭头函数的this // 箭头函数没有this 不能用call apply bind 进行绑定 console.log(this) return v + this.num } let b = {num:3} return f.call(b, a) } } console.log(p.add()); /*** *普通函数可以用bind,call apply 改变箭头函数的指向, *箭头函数没有this ,不可以通过bind 、call、apply改变this 指向的 **/ let p ={ num:1, current: this, // 对象里面的this.一般指向Window、主要看调用者是谁,call apply bind 会改变this 指向 add:(a)=>{ ()=>{ //当前的this 指向的是上一层函数的this,上一层如果还是箭头函数没有this,继续往上找,p 对象里面的current ,window对象,就是此时的this console.log(this.name) } } } console.log(p.add()); //输出为空因为 window是name 属性没有值
只是查找方便的总结