我对这个条件值的理解是什么 |赋值正确吗?
Is my understanding of this conditional value | value assignment correct?
我同事的脚本充满了这样的代码:
(window.WORLD_CLOCK || (window.WORLD_CLOCK = WORLD_CLOCK))();
现在,在此行之前定义了一个名为 WORLD_CLOCK
的函数。
根据我的假设,这会检查 window
对象是否包含一个名为 WORLD_CLOCK
的键,如果它包含 (true
) 它 returns 那个函数,如果不是 (false
),它会将 WORLD_CLOCK
分配给 window 和 returns 该分配的 WORLD_CLOCK
函数。
外括号捕获此函数,第三对(空)括号调用此函数。
这个假设是否正确?
如果是这样,用以下代码替换该行是否合适:
if (typeof WORLD_CLOCK === "function") {
if (!window.hasOwnProperty("WORLD_CLOCK")) {
window.WORLD_CLOCK = WORLD_CLOCK;
}
window.WORLD_CLOCK();
}
谢谢。
我认为你同事的代码假设总是有一个 WORLD_CLOCK 函数,步骤是:
- 如果
window
没有属性WORLD_CLOCK将WORLD_CLOCK函数分配给同名的属性
- 从
window
对象调用 属性 WORLD_CLOCK
所以,重写可能是这样的:
if (!window.hasOwnProperty("WORLD_CLOCK") {
window.WORLD_CLOCK = WORLD_CLOCK
}
window.WORLD_CLOCK()
我认为它可能更像是(不是说你会以这种方式完成它只是一个更直接的翻译)。
if (window.WORLD_CLOCK) {
window.WORLD_CLOCK();
} else {
window.WORLD_CLOCK = WORLD_CLOCK;
window.WORLD_CLOCK();
}
我同事的脚本充满了这样的代码:
(window.WORLD_CLOCK || (window.WORLD_CLOCK = WORLD_CLOCK))();
现在,在此行之前定义了一个名为 WORLD_CLOCK
的函数。
根据我的假设,这会检查 window
对象是否包含一个名为 WORLD_CLOCK
的键,如果它包含 (true
) 它 returns 那个函数,如果不是 (false
),它会将 WORLD_CLOCK
分配给 window 和 returns 该分配的 WORLD_CLOCK
函数。
外括号捕获此函数,第三对(空)括号调用此函数。
这个假设是否正确?
如果是这样,用以下代码替换该行是否合适:
if (typeof WORLD_CLOCK === "function") {
if (!window.hasOwnProperty("WORLD_CLOCK")) {
window.WORLD_CLOCK = WORLD_CLOCK;
}
window.WORLD_CLOCK();
}
谢谢。
我认为你同事的代码假设总是有一个 WORLD_CLOCK 函数,步骤是:
- 如果
window
没有属性WORLD_CLOCK将WORLD_CLOCK函数分配给同名的属性 - 从
window
对象调用 属性 WORLD_CLOCK
所以,重写可能是这样的:
if (!window.hasOwnProperty("WORLD_CLOCK") {
window.WORLD_CLOCK = WORLD_CLOCK
}
window.WORLD_CLOCK()
我认为它可能更像是(不是说你会以这种方式完成它只是一个更直接的翻译)。
if (window.WORLD_CLOCK) {
window.WORLD_CLOCK();
} else {
window.WORLD_CLOCK = WORLD_CLOCK;
window.WORLD_CLOCK();
}