我同事的脚本充满了这样的代码:(window.WORLD_CLOCK || (window.WORLD_CLOCK = WORLD_CLOCK))();现在,WORLD_CLOCK在此行之前定义了一个名为的函数。根据我的假设,这会检查window对象是否包含一个名为 的键WORLD_CLOCK,如果它包含( true) 它返回该函数,如果它不包含 ( false) 它分配WORLD_CLOCK给 window 并WORLD_CLOCK从该分配返回函数。外括号捕获此函数,第三对(空)括号调用此函数。这个假设正确吗?如果是这样,用以下代码替换该行是否合适:if (typeof WORLD_CLOCK === "function") { if (!window.hasOwnProperty("WORLD_CLOCK")) { window.WORLD_CLOCK = WORLD_CLOCK; } window.WORLD_CLOCK();}谢谢。
2 回答
繁星coding
TA贡献1797条经验 获得超4个赞
我认为你同事的代码假设总是有一个 WORLD_CLOCK 函数,步骤是:
如果window没有 WORLD_CLOCK 属性,则将 WORLD_CLOCK 函数分配给具有相同名称的属性
从window对象调用属性 WORLD_CLOCK
所以,也许重写可能是这样的:
if (!window.hasOwnProperty("WORLD_CLOCK") {
window.WORLD_CLOCK = WORLD_CLOCK
}
window.WORLD_CLOCK()
九州编程
TA贡献1785条经验 获得超4个赞
我认为它可能更像是(不是说您会以这种方式完成它只是更直接的翻译)。
if (window.WORLD_CLOCK) {
window.WORLD_CLOCK();
} else {
window.WORLD_CLOCK = WORLD_CLOCK;
window.WORLD_CLOCK();
}
添加回答
举报
0/150
提交
取消