【问题标题】:Javascript: Understanding the Weird Parts - function scope not working as describedJavascript:了解奇怪的部分 - 函数范围未按描述工作
【发布时间】:2015-06-24 19:28:46
【问题描述】:

我尝试过一百万种方式重写此代码,但无法弄清楚 Tony Alicea 如何从这段代码中产生结果 1、2、未定义、1:

function b() {
    var myVar;
    console.log(myVar);
}

function a() {
    myVar = 2;
    console.log(myVar)
    b();
}

var myVar = 1;
console.log(myVar);
a();
console.log(myVar);

您可以在 https://www.youtube.com/watch?v=Bv_5Zv5c-Ts&t=74m30s 看到代码和视频,他执行此操作并生成 1、2、未定义、1。我继续运行它并得到 1、2、未定义、2。我在做什么这导致 myVar 在全局范围和 a() 的范围内都以 2 的形式存在?我的代码目前发布在https://testing-mdmitchellnyc.c9.io/hello-world.html

【问题讨论】:

    标签: javascript scope executioncontext


    【解决方案1】:

    function a() 应该是

    function a() {
        var myVar = 2;
        console.log(myVar)
        b();
    } 
    

    现在function a() 的方式是覆盖全局myVar,而不是创建自己的作用域myVar

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      • 2021-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-26
      • 2013-01-23
      相关资源
      最近更新 更多