【问题标题】:Can anyone tell me what this javascript might be doing [duplicate]谁能告诉我这个javascript可能在做什么[重复]
【发布时间】:2013-06-05 11:01:36
【问题描述】:

所以我正在查看一个包含以下 javascript 行的项目:

window.negotiationApp = window.negotiationApp || {};

谁能解释一下这行代码可能会发生什么?

更新 所以现在我明白了这行代码在做什么,我的问题可能是独一无二的:

javascript代码中没有negotiationApp对象。 window.negotiationApp 将始终设置为空对象,似乎开发人员实际上只是将其用作其他对象的命名空间或容器。这是一种常见的 javascript 做法吗?

【问题讨论】:

标签: javascript


【解决方案1】:

它确保设置了window.negotiationApp。如果window 没有此属性,则将其初始化为{}(一个空对象),否则,它什么也不做。

【讨论】:

  • 感谢您的回答,编写此代码的开发人员从未创建协商应用程序对象,因此它始终初始化为空对象({}),这是实现命名空间的常见做法javascript?
  • 我不知道这有多普遍,但我看到的大多数代码都使用这样的对象来放入所有代码的功能。
【解决方案2】:

这是一个习惯用法,基本上意味着,如果window.negotiationApp 不存在,则将其设置为{}。你可以这样做,这样未来的信息就不会返回 undefined 或其他东西。

【讨论】:

    【解决方案3】:

    确保window.negotiationApp 对象不是未定义的。

    window.negotiationApp = window.negotiationApp || {};
    

    表示如果 window.negotiationApp 已定义,则使用它或为 window.negotiationApp 分配一个空对象。

    if(window.negotiationApp) {
      window.negotiationApp = window.negotiationApp;
    }
    else {
      window.negotiationApp = {};
    }
    

    【讨论】:

      【解决方案4】:

      由于此变量是在全局范围内设置的,因此确保不会覆盖现有变量(如果有的话)。

      所以它基本上说,如果已经定义了一个negotiationApp 变量 - 使用它,如果没有创建一个新变量。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-05-01
        • 1970-01-01
        • 2021-09-06
        • 2013-05-29
        • 1970-01-01
        • 1970-01-01
        • 2011-04-08
        • 1970-01-01
        相关资源
        最近更新 更多