2014-07-23 33 views
0

我開始在Javascript中使用OO概念。Javascript class libraries「mimic」

所以,我有幾個「下課」的js文件,每個節點確定一個單一的「一流」爲:

// FILE myproject.classlib.myClass1 

// "Class" 
function myClass1(param1, param2){ 

    // Properties 
    this.prop1 = param1; 
    this.prop2 = param2; 
} 

/// "Methods" 
myClass1.prototype.doSomething = function(){ 

    alert('myClass1 Hello world. prop1=' = this.prop1); 
    alert('myClass1 Hello world. prop2=' = this.prop2); 
} 

在所在班被用於我要補充幾個JS我的HTML頁面的結束文件,如:

<script type="text/javascript" charset="UTF-8" src="/Content/script/mzui.myproject.classlib.myClass1.js")" /> 
<script type="text/javascript" charset="UTF-8" src="/Content/script/mzui.myproject.classlib.myClass2.js")" /> 
<script type="text/javascript" charset="UTF-8" src="/Content/script/mzui.myproject.classlib.myClass3.js")" /> 
. 
. 
. 
<script type="text/javascript" charset="UTF-8" src="/Content/script/mzui.myproject.classlib.myClassN.js")" /> 

在結束所有文件將成爲使用Google's關閉編譯一個myproject.jar,但我必須保持我的結構化的開發環境,也避免了在運行時雙定義。

那麼,究竟應做:

  1. 組織類,分爲 「命名空間」。我搜索了,我可以建立一個單一的項目對象,但我怎樣才能引用所有文件中的同一個對象(添加類)?

  2. 可以做些什麼來避免我所有屏幕中的標籤太多?有沒有辦法將它們「捆綁」在一個單獨的JavaScript中,以加載所有其他的?

+1

請參閱http://browserify.org/ – elclanrs

回答

0

既然你已經在使用關閉編譯器的規劃,我對如何做文件的一些非常具體的建議/依賴管理。

  1. 如果檢查出寫入到谷歌關閉風格一些代碼,你會看到他們是如何定義的命名空間和使用goog.provide()goog.require()聲明一下將文件之外使用定義它,什麼文件需要來自代碼庫的其他部分。

  2. 我強烈建議通過plovr使用Closure編譯器和Closure庫。 使用plovr,您可以定義一個包含一個文件或多個文件的配置。然後,可以通過更改單個設置來調整所有將代碼加載到多個文件中的明智方式(自動生成多個腳本標記/將所有文件連接成1個腳本/並置和縮小/優化編譯)。

Plovr設計由the one book on Google Closure作者,邁克爾·博林,幫助人們使用關閉編譯器和Closure庫,而無需建立一個更復雜的構建過程。

一旦你已經啓動並運行plovr,正確使用goog.require()goog.provide()應該可以幫助你在可管理大小的文件中編寫代碼並使用和連接結果。

0

如何在所有文件中引用同一個對象?

如果你讓全球性的,無論是在全球範圍內與var宣佈它,或將其設置爲window屬性,那麼你可以從任何地方訪問它。

有沒有辦法將它們「捆綁」在一個單獨的JavaScript中,將加載所有其他的?

是的,你可以創建script元素,並將它們添加到DOM:

​​
+0

對不起,您可以更好地解釋如何使它成爲全球雖然var? – Mendes

+0

@Mendez如果你在任何函數外用'var'聲明它,它將是一個全局變量,並且是'window'的一個屬性。 [Demo](http://jsfiddle.net/QrLwT/) – Oriol

+0

我知道......我不知道的是如何將我的「class」原型聲明爲全局的。檢查此演示更正:http://jsfiddle.net/4vaMp/(不工作)。 – Mendes