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了

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

  • 相关阅读:
    Laravel 中使用支付宝、银联支付、微信支付进行支付
    C# 文件读写系列三
    C# 文件读写系列二
    C# Encoding
    C# 文件操作系列一
    Unity 依赖注入
    控制反转和依赖注入模式
    Aop学习笔记系列一
    C# lambda表达式
    C# 委托基础
  • 原文地址:https://www.cnblogs.com/WildSky/p/11246693.html
Copyright © 2011-2022 走看看