箭头函数的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()
复制代码

 

posted @   伴月阁  阅读(58)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示