我最近遇到了JavaScript Namespaces,以及如何使用它們來創建像其他流行的OOP語言一樣的名稱空間。我對他們如何申報感到困惑。例如,JavaScript名稱空間對象文字
var myNamespace = myNamespace || {};
創建一個命名空間稱爲myNamespace
如果尚未創建它。如果它被創建,只需將其傳入var myNamespace
。
我很難理解myNamespace || {}
究竟做了什麼。
首先不確定myNamespace
?你會如何比較布爾表達式。
另外,對象字面值{}
是如何工作的?它是否創建一個空對象並將其分配給myNamespace
以作爲命名空間工作?
我試過尋找關於SO的答案,但是關於如何聲明不同類型的命名空間的做法存在太多飽和。
undefined || {} === {}。是的,{}只是一個空對象 – juvian
'||'是「或」。 「如果myNamespace已被定義,則將其分配給myNamespace,否則將myNamespace分配給一個空對象。 –
這種命名空間的方法已經被ES6模塊所淘汰。 – 2017-08-10 19:21:27