這裏有一個奇怪的問題呃... 我想更好地瞭解一般的JS代碼是如何爲Web應用程序構建的。這行代碼是什麼? (構建/設計一個JS Web應用程序)
我經常看到這樣的行代碼開始(但現在由於某種原因,我無法找到一個真實的例子):
var SOME = SOME || {}
或類似的東西。我現在是模糊的,但我我肯定是somehwat常見的模式,如果你的某個人習慣了網絡應用程序將認出它..
我的問題是:我很確定,代碼行開始某種模式。你知道嗎?你能告訴我什麼是模式?
這裏有一個奇怪的問題呃... 我想更好地瞭解一般的JS代碼是如何爲Web應用程序構建的。這行代碼是什麼? (構建/設計一個JS Web應用程序)
我經常看到這樣的行代碼開始(但現在由於某種原因,我無法找到一個真實的例子):
var SOME = SOME || {}
或類似的東西。我現在是模糊的,但我我肯定是somehwat常見的模式,如果你的某個人習慣了網絡應用程序將認出它..
我的問題是:我很確定,代碼行開始某種模式。你知道嗎?你能告訴我什麼是模式?
基本上
var SOME = SOME || {}
裝置設定本地SOME
(即無功SOME)以指向命名SOME
(即= SOME)現有的全局變量,如果它不是NULL。如果全球一些是NULL,則設置當地一些人的新對象{}
這是說
var SOME = {};
if (window.SOME != NULL) {
SOME = window.SOME
}
編輯的快捷方式:
OK,經常與模塊工作時,這種模式被使用。例如
Foo.js
window.appModule = {};
Bar.js
var appModule = appModule || {};
appModule.newFunction = function() { //.... Whatever. };
window.appModule = appModule;
基本上,我們希望使用現有的AppModule實例,或創建一個新的,如果它還不存在。這裏我們通過向它添加一個新的函數來擴展現有的模塊實例。所以真的,這種模式只是確保創建對象的實例(如果它尚不存在)的方便方法。
真的不是一個主要的模式,只是一個方便的捷徑。
編輯:
發現這個例子剛纔:
var MODULE = (function (my) {
// add capabilities...
return my;
}(MODULE || {}));
通知在底部使用的模式。再說一次,這是一種方便的方式,可以說使用現有的MODULE
或新的另一個對我來說,然後將其傳遞到function (my)
。
避免SOME爲空。
這是shortcircuiting。基本上,如果SOME爲NULL,它將變爲{},所以初始化很好。
var myVar = valueThatCouldBeNull || WhateverIWantToInitInSaidCase
好的,我知道它做了什麼。但是我的問題稍有不同:你是否認識到它通常用於構建Web應用程序代碼塊(可能是模塊?)? – Stratboy
謝謝。根據另一個未來讀者的例子,看看這個經典:[https://github.com/tastejs/todomvc/tree/gh-pages/architecture-examples/backbone]每個js文件都以'var app = app開頭|| {};' – Stratboy