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

Javascript 我对这个条件值|值赋值的理解正确吗?,javascript,function,conditional-statements,variable-assignment,Javascript,Function,Conditional Statements,Variable Assignment,我同事的脚本中充满了这样的代码: if (!window.hasOwnProperty("WORLD_CLOCK") { window.WORLD_CLOCK = WORLD_CLOCK } window.WORLD_CLOCK() (window.WORLD||(window.WORLD|CLOCK=WORLD|CLOCK)); 现在,在这一行前面定义了一个名为WORLD\u CLOCK的函数 根据我的假设,这将检查窗口对象是否包含名为世界时钟的键,如果它包含(真),它将返回该函数,

我同事的脚本中充满了这样的代码:

if (!window.hasOwnProperty("WORLD_CLOCK") {
  window.WORLD_CLOCK = WORLD_CLOCK
}

window.WORLD_CLOCK()
(window.WORLD||(window.WORLD|CLOCK=WORLD|CLOCK));
现在,在这一行前面定义了一个名为
WORLD\u CLOCK
的函数

根据我的假设,这将检查
窗口
对象是否包含名为
世界时钟
的键,如果它包含(
),它将返回该函数,如果它没有(
),它将
世界时钟
分配给窗口,并从该分配返回
世界时钟
函数

外圆括号捕获此函数,第三对(空)圆括号调用此函数

这个假设正确吗

如果是,是否应将该行替换为以下代码:

if(世界时钟类型==“函数”){
如果(!window.hasOwnProperty(“世界时钟”)){
window.WORLD\u CLOCK=世界时钟;
}
窗。世界时钟();
}

谢谢。

我认为您的同事的代码假定始终存在世界时钟功能,步骤如下:

  • 如果
    window
    没有属性WORLD\u CLOCK,请将WORLD\u CLOCK函数指定给具有相同名称的属性
  • 窗口调用属性WORLD\u CLOCK
    对象
  • 所以,重写可能是这样的:

    if (!window.hasOwnProperty("WORLD_CLOCK") {
      window.WORLD_CLOCK = WORLD_CLOCK
    }
    
    window.WORLD_CLOCK()
    

    我认为您的同事的代码假设始终存在世界时钟功能,步骤如下:

  • 如果
    window
    没有属性WORLD\u CLOCK,请将WORLD\u CLOCK函数指定给具有相同名称的属性
  • 窗口调用属性WORLD\u CLOCK
    对象
  • 所以,重写可能是这样的:

    if (!window.hasOwnProperty("WORLD_CLOCK") {
      window.WORLD_CLOCK = WORLD_CLOCK
    }
    
    window.WORLD_CLOCK()
    

    我认为它可能更像(并不是说你会通过更直接的翻译来完成它)


    我认为它可能更像(并不是说你会通过更直接的翻译来完成它)


    这种代码非常常见……@epascarello你有什么例子我可以看一下吗?通常人们把它写成
    window.WORLD_CLOCK=window.WORLD_CLOCK | WORLD_CLOCK
    ,这都是基于你选择的样式指南所允许的。如果你不喜欢它,那么就把它放在样式指南中,不要这样做。这种代码很常见。…@epascarello你有什么例子我可以看一下吗?通常人们把它写成
    window.WORLD_CLOCK=window.WORLD_CLOCK | | WORLD_CLOCK
    ,这都是基于你选择的样式指南所允许的。如果你不喜欢它,那么把它放在风格指南中,不要这样做。谢谢你的快速回答,我很感激。谢谢你的快速回答,我很感激。