为了账号安全,请及时绑定邮箱和手机立即绑定

是我对这个条件值的理解吗?赋值正确吗?

是我对这个条件值的理解吗?赋值正确吗?

斯蒂芬大帝 2021-11-18 09:26:14
我同事的脚本充满了这样的代码:(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()


查看完整回答
反对 回复 2021-11-18
?
九州编程

TA贡献1785条经验 获得超4个赞

我认为它可能更像是(不是说您会以这种方式完成它只是更直接的翻译)。


if (window.WORLD_CLOCK) {

  window.WORLD_CLOCK();

} else {

  window.WORLD_CLOCK = WORLD_CLOCK;

  window.WORLD_CLOCK();

}


查看完整回答
反对 回复 2021-11-18
  • 2 回答
  • 0 关注
  • 126 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信