一个关于this的问题

<script type="text/javascript">
        var a = 10;
        var obj = {
            a:14,
            aa:function(){
                return () => console.log(this.a);
            },
            bb:function(){
                return function(){
                    console.log(this.a);
                }
            },
            cc:function(){
                return setTimeout(function(){
                    console.log(this.a)
                },1000)
            },
            dd:function(){
                return setTimeout(() => console.log(this.a),2000);
            },
            ee: () => {
                return setTimeout(() =>
                    console.log(this.a),3000);
            },
            ff: () => {
                return setTimeout(function(){
                    console.log(this.a)
                },4000);
            }
        }
        obj.aa()(); //14
        obj.bb()();//10
        obj.cc();//10
        obj.dd();//14
        obj.ee();//10
        obj.ff();//10
</script>

全部评论
dd 和 ee 能解释一下么
点赞 回复 分享
发布于 2018-04-04 00:08
前2个,是箭头函数的this指向定义作用域的,bb的是直接调用全局。。剩下格式看着乱。跟定时器异步有关吧
点赞 回复 分享
发布于 2018-04-03 22:46

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务