zoukankan      html  css  js  c++  java
  • 关于箭头函数里this的指向

    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了

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

  • 相关阅读:
    NOIP知识点&&模板整理【更新中】
    qbxt DAY7 T4
    qbxt DAY7 T2
    qbxt DAY 6 T3 柯西不等式和拉格朗日不等式
    qbxt DAY4 T4
    qbxt DAY4 T3
    #98. 表达式计算 杂想
    扫描线入门学习笔记 (主要讲解代码实现)
    学OI要知道的基础知识(咕咕咕)
    主定理学习笔记(总结向)
  • 原文地址:https://www.cnblogs.com/WildSky/p/11246693.html
Copyright © 2011-2022 走看看