【发布时间】:2020-02-09 05:46:07
【问题描述】:
我同事的脚本充满了这样的代码:
(window.WORLD_CLOCK || (window.WORLD_CLOCK = WORLD_CLOCK))();
现在,在这一行之前定义了一个名为 WORLD_CLOCK 的函数。
根据我的假设,这将检查 window 对象是否包含名为 WORLD_CLOCK 的键,如果包含 (true),则返回该函数,如果不包含 (false),则分配WORLD_CLOCK 到窗口并从该分配返回 WORLD_CLOCK 函数。
外括号捕获这个函数,第三对(空)括号调用这个函数。
这个假设正确吗?
如果是这样,用以下代码替换该行是否合适:
if (typeof WORLD_CLOCK === "function") {
if (!window.hasOwnProperty("WORLD_CLOCK")) {
window.WORLD_CLOCK = WORLD_CLOCK;
}
window.WORLD_CLOCK();
}
谢谢。
【问题讨论】:
-
那段代码很常见....
-
@epascarello 你有什么例子可以看一下吗?
-
通常人们将其写为
window.WORLD_CLOCK = window.WORLD_CLOCK || WORLD_CLOCK,这完全取决于您选择的样式指南允许的内容。如果你不喜欢它,那就把它放在样式指南中不要这样做。
标签: javascript function conditional-statements variable-assignment