【问题标题】:Javascript namespaces that use ||使用 || 的 Javascript 命名空间
【发布时间】:2012-11-06 12:48:07
【问题描述】:

我看到 JavaScript 中的命名空间定义为:

var AppSpace = AppSpace || {};

和/或

var namespace = {};

谁能告诉我:

  1. 有什么区别?
  2. 是什么||用于第一个示例?
  3. 为什么在第一个示例中,AppSpace 被使用了两次?
  4. 首选语法是什么?

【问题讨论】:

标签: javascript javascript-namespaces


【解决方案1】:

|| 运算符是 logical or,如果左操作数为真,则在 Javascript 中返回其左操作数,否则返回其右操作数。第一种语法更可取,因为当您不确定命名空间是否已经定义时,您可以在代码中的多个位置(例如在不同的文件中)重复使用它:

var AppSpace = AppSpace || {}; // AppSauce doesn't exist (falsy) so this is the same as:
                               // var AppSauce = {};
AppSauce.x = "hi";

var AppSpace = AppSpace || {}; // AppSauce does exist (truthy) so this is the same as:
                               // var AppSauce = AppSauce;
console.log(AppSauce.x); // Outputs "hi"

对比:

var AppSpace = {};
AppSauce.x = "hi";

var AppSpace = {}; // Overwrites Appsauce
console.log(AppSauce.x); // Outputs undefined

【讨论】:

  • 完美!非常感谢
  • 我猜你写解释的时候饿了。但是谢谢,我在想||可能正在这样做,但在追查确认时遇到了麻烦。
猜你喜欢
  • 2013-02-13
  • 2014-10-17
  • 2018-05-29
  • 1970-01-01
  • 2010-12-05
  • 2011-12-02
  • 2011-03-25
  • 2011-09-18
相关资源
最近更新 更多