【发布时间】:2014-02-19 17:07:58
【问题描述】:
为什么会这样:
FOO = window.FOO || {isFoo: true};
但这不是:
FOO = FOO || {isFoo: true};
因为 FOO 和 window.FOO 都引用同一个东西(都在全局范围内运行)。
【问题讨论】:
标签: javascript module scope global
为什么会这样:
FOO = window.FOO || {isFoo: true};
但这不是:
FOO = FOO || {isFoo: true};
因为 FOO 和 window.FOO 都引用同一个东西(都在全局范围内运行)。
【问题讨论】:
标签: javascript module scope global
因为FOO 未声明,但window 已声明。尝试访问未声明的变量会抛出 ReferenceError,但访问未定义的属性不会。
您可以使用typeof 绕过它:
FOO = typeof FOO != 'undefined' ? FOO : {isFoo: true};
【讨论】: