我已经看到 JavaScript 中的命名空间定义为:
var AppSpace = AppSpace || {};
和/或
var namespace = {};
谁能告诉我:
- 有什么不同?
- 是什么|| 用于第一个示例?
- 为什么在第一个示例中
AppSpace
使用了两次? - 哪个是首选语法?
我已经看到 JavaScript 中的命名空间定义为:
var AppSpace = AppSpace || {};
和/或
var namespace = {};
谁能告诉我:
AppSpace
使用了两次?||
运算符是 JavaScript 中的whichlogical or
如果左操作数为真,则返回其左操作数,否则返回其右操作数。第一种语法更可取,因为当您不确定命名空间是否已定义时,您可以在代码中的多个位置(例如在不同的文件中)重复使用它:
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