箭头函数的this 指向问题
箭头函数的特点
1.箭头函数没有this,箭头函数的this不是调用的时候决定的,而是在定义的时候决 定的。
2. 箭头函数它会直接绑定到它父级的执行上下文里的this,“上下文”为作用域 ; 也就是说 箭头函数的this 是看外层是否有函数,如果有 外层函数的this 就是内部箭头函数的 this ;如果没有 那么this 就是window
示例
var obj={ name:'obj', fun:()=>{ console.log(this) //window 外层没有函数 就是 window }, fun1:{ fun:()=>{ console.log(this) //window 外层也没有函数 就是 window } }, fun2:()=>{ var obj={ fun:()=>{ console.log(this) // window 外层也是箭头函数 继续往上找 没有函数 就是 window } } obj.fun() }, fun3:function(){ var obj={ fun:()=>{ console.log(this) // obj:{name:'obj'} 外层就普通函数fun3 调用者为obj 所以this 就是 obj } } obj.fun() } } obj.fun() obj.fun1.fun() obj.fun2() obj.fun3()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!