2010-02-05 87 views
1

我正在構建一個JavaScript引擎。我用一個簡單的函數作爲一個類,添加了子函數,字符串......並使用原型來添加其他對象...你如何管理一個大腳本?

一切都很好。現在的問題是,我使用一個類(或主函數),因爲我需要它。它變得非常龐大,直到我無法再控制它,並且調試代碼變得越來越困難。

我是一位C#開發人員,他使用過Visual Studio。我從來沒有遇到過這個問題,因爲我有不同的文件/類/窗體...

我想知道這裏的開發人員是如何處理大型JavaScript文件的。你用什麼工具/策略/技巧來解決這個問題。

感謝

回答

2

您仍然可以在C#中創建類似於您的類和對象的多個對象。

我建議你在一些JavaScript框架,如YUI3(http://developer.yahoo.com/yui/3/

這爲構建你的JavaScript代碼和行爲很好的機制去看看。例如,YUI3提供了Y.extend方法,允許您像在C#中一樣擴展另一個對象。您可以在JavaScript中使用一整套其他機制,實際上它比您在C#中學到的更強大。

查看原型繼承,也許看YUI劇院的Douglas Crockford的一些視頻(http://developer.yahoo.com/yui/theater/)。所有真正優秀的東西都會告訴你如何在JavaScript中完成這類事情,而不會讓大型腳本頭疼。

爲了更具體地回答你的問題,我使用YUI中的模塊模式讓我將代碼拆分爲多個文件。它允許一種機制,您可以定義模塊,然後從其他文件中使用它們,同時自動解決所需的依賴關係。因此,您可以定義多個包含您的行爲和代碼定義各種模塊的JavaScript文件,這些文件可以在其他文件中「使用」。

YUI().use('my-module', 'my-other-module', function(Y) { 
    Y.MyModule.doSomething(); 
    Y.MyOtherModule.doSomethingElse(); 
}); 

「我的模塊」和「我的-其他模塊」可以在完全不同的JS文件,然後我告訴YUI加載器在哪裏可以找到定義,它會自動將它們包括到我的網頁。

這非常強大,可以讓您分解代碼,以最大限度地重用和簡化。許多其他開發人員也將他們的代碼放在YUI畫廊上,以便您可以將行爲混合並匹配到您的項目中。

0

jQuery.這是一個偉大的工具來幫助您寫更少的和更好的代碼。這是一個簡單的JS框架/庫,你鏈接到每個HTML頁面。學習應該很簡單,並且有很多支持,手冊和書籍。

+0

@Samuel Carrijo沒關係,別擔心。 有時候我會寫一個答案,然後在閱讀寫作的解釋之後再編輯它以理解他想要的內容。 – Gal 2010-02-05 23:32:02

0

Google創建了GWT來解決這個問題。