1

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

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

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

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

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

4

4 回答 4

5

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

于 2013-06-09T18:39:38.250 回答
2

这是一个成语,基本上意味着,如果window.negotiationApp不存在,将其设置为{}. 您可能会这样做,以便将来的信息不会返回 undefined 或其他东西。

于 2013-06-09T18:40:10.903 回答
2

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

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

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

if(window.negotiationApp) {
  window.negotiationApp = window.negotiationApp;
}
else {
  window.negotiationApp = {};
}
于 2013-06-09T18:40:15.353 回答
2

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

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

于 2013-06-09T18:40:54.023 回答