【问题标题】:Why do I have to use the window. prefix here?为什么我必须使用窗口。前缀在这里?
【发布时间】:2014-02-19 17:07:58
【问题描述】:

为什么会这样:

FOO = window.FOO || {isFoo: true};

但这不是:

FOO = FOO || {isFoo: true};

因为 FOO 和 window.FOO 都引用同一个东西(都在全局范围内运行)。

【问题讨论】:

标签: javascript module scope global


【解决方案1】:

因为FOO 未声明,但window 已声明。尝试访问未声明的变量会抛出 ReferenceError,但访问未定义的属性不会。

您可以使用typeof 绕过它:

FOO = typeof FOO != 'undefined' ? FOO : {isFoo: true};

【讨论】:

    猜你喜欢
    • 2011-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多