代码之家  ›  专栏  ›  技术社区  ›  Adriano_Pinaffo

js:local var x global(window)var[重复]

  •  -3
  • Adriano_Pinaffo  · 技术社区  · 7 年前

    研究JS中的全局变量 here ,我开始尝试,令我惊讶的是:

    var thisVar = "global var";
    
    function showVarLet() {
      var thisVar = "local var";
      console.log("%s   %s", thisVar, window.thisVar);
    }
    showVarLet();

    给我:

    local var
    undefined
    

    但在浏览器控制台中也一样,它给了我:

    local var
    global var
    

    那么,这个窗口对象是什么呢?

    编辑:

    我试着在控制台检查如果不是 window.thisVar 我引用 this.thisVar ,我的假设是我会访问局部变量,但我会继续访问全局变量,为什么?

    1 回复  |  直到 7 年前
        1
  •  0
  •   community wiki Jonas Wilms    7 年前

    我展示的代码在一个函数中 global()

    那两个都没有 thisVar s是全局的,其中一个是 全局() 函数,另一个是 showVarLet() . 无法通过访问本地变量 window. .