我見過的JavaScript命名空間定義爲:使用||的Javascript名稱空間
var AppSpace = AppSpace || {};
和/或
var namespace = {};
誰能告訴我:
- 有什麼區別?
- 什麼是||在第一個例子中使用?
- 爲什麼在第一個例子中,
AppSpace
使用過兩次? - 哪個是首選語法?
我見過的JavaScript命名空間定義爲:使用||的Javascript名稱空間
var AppSpace = AppSpace || {};
和/或
var namespace = {};
誰能告訴我:
AppSpace
使用過兩次?的||
操作是在Javascript如果左操作數是truthy返回其左操作數logical 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
完美!非常感謝 –
@AdamDavies不客氣:) – Paulpro
我猜你在寫解釋時很餓。但是,謝謝,我正在考慮||很可能是這樣做的,但無法追查確認。 – Timberline
http://elegantcode.com/2011/01/26/basic-javascript-part-8-namespaces/ –
可能的重複:http://stackoverflow.com/questions/1378619/javascript-operator – elclanrs
不重複 - 更多的是如何||運算符用於名稱空間。這種用法讓Java開發人員感到困惑,因爲在Java中,您不能以這種方式對命名空間執行操作。瞭解名稱空間是JavaScript中的第一類對象是一種思維方式的變化,對於知道非常有用。 –