首页 > 其他 > 详细

关于箭头函数里this的指向

时间:2019-07-25 21:10:35      阅读:87      评论:0      收藏:0      [点我收藏+]

es6箭头函数里this的指向和普通的this还是有区别的,它是创建的时候就确定的,

其实我发现箭头函数的指向就是同级下的console.log(this)里的this,这样的话就能比较简单的理解多层嵌套情况下箭头函数里this的指向问题了

var f1 = {
        f2: {
            f3: {
                f6: console.log(this),//window
                f4: () => console.log(this)
            }
        }
    };
    f1.f2.f3.f6;//window

相当于,在f4同级下放一个console.log(this)不就是箭头函数里this的指向

再加一个代码

var test = () => {
    console.log(this.a);
}
//形式上等价于
var test = function(){
    console.log(this.a);
}
//实质上等价于
function fn(){
    var that = this;
    var test = function(){
        console.log(that.a);
    }
}

这个里面test相当于箭头函数,那么它里面的this就是和它同级的this,既console.log(this)里的this了

---------------------------------------------------------------------------------

还有一点就是要理解为什么console.log里this的输出的话就要去理解一下函数的调用方式,这里可以把它看成是一个函数的独立调用,所以this就是window了

如果是方法调用那么就又是另一码事了

关于箭头函数里this的指向

原文:https://www.cnblogs.com/WildSky/p/11246693.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!