范围如何在这个javascript示例中工作?

时间:2016-08-29 17:36:01

标签: javascript

我发现了一段我无法理解的代码片段。如果有人能带我通过它,那就太好了。下面是代码,我将在下面添加我的尝试

main()

function main()
{
    var name = "bob";
    doSomething(function()
    {
        if (false)
        {
            var name = "fred";
        }

        // Were you expecting it to be "bob"?!
        alert(name);
    });
}

function doSomething(callbackFunction)
{
    callbackFunction();   
}

输出

undefined

我的尝试

首先在main()内,我们将name设置为bob。然后函数doSomething调用我们传入的匿名函数。

现在,我有点困惑。

if (false)检查什么?如果错误,我们是否将name重置为fred?

然后我们继续提醒name,其中......显然是undefined

0 个答案:

没有答案