回答
使用CommonJS的/ RequireJS方法,特別是require
命令。這是處理Titanium大型系統的(強烈推薦)方式,並且在其網站上有詳細記錄,以及處理特定於Titanium的JavaScript模塊化的許多最佳實踐。 Here is the documentation from Titanium on this.
例如,創建一個封裝了某種形式的「查看」模塊,把它放在一個與此內容命名爲MyCustomView.js
文件:
// MyCustomView.js
function MyCustomView(message) {
var self = Ti.UI.createView({
backgroundColor : 'red'
});
var label = Ti.UI.createLabel({
text : message,
top : 15,
.... // Other initialization
});
// ... Other initialization for your custom view, event listeners etc.
return self;
}
module.exports = MyCustomView;
現在你可以在另一個類很容易使用這個模塊,讓我們假設你把它放在你的/Resources
文件夾中,讓我們把模塊加載到app.js
裏面並將它添加到主窗口中。
// app.js
var MyCustomView = require('MyCustomView');
var myView = new MyCustomView('A message!');
Titanium.UI.currentWindow.add(myView);
您可以使用這種方法來製作自定義視圖,可重複使用的代碼庫以及任何您想要的內容。另一種常見的事情是有,有許多不同的輔助功能的實用程序類:
// Utility.js
exports.cleanString = function(string) {
// Replace evil characters
var ret = string.replace(/[|&;$%@"<>()+,]/g, "");
// replace double single quotes
return ret.replace(/"/g, "''");
}
這種方法可以很容易地使用這樣的:
// app.js
var Utility = require('Utility.js');
Ti.API.info(Utility.cleanString('He##o W&orld$'));
我用它的另一種常見的方法是實施在Singleton pattern爲每個加載模塊是其自身功能方面,所以如果你喜歡,你可以有持久價值:
// ManagerSingleton.js
var SpriteManager = {
count : 0
};
exports.addSprite = function() {
SpriteManager.count++;
}
exports.removeSprite = function() {
SpriteManager.count--;
}
你會加載並使用ŧ他的方式幾乎一樣的效用:
// app.js
var ManagerSingleton = require('ManagerSingleton');
ManagerSingleton.addSprite();
這是一個更優雅的解決方案的東西,而不是使用全局變量。這些方法絕不是完美的,但它們爲我節省了大量時間和挫敗感,併爲我的Titanium代碼增加了深度,優雅和可讀性,適用於各種大小和類型的應用程序。
感謝您的示例 – Fox
Javascript世界中有兩個主要的模塊系統。 一個是CommonJS,另一個是AMD。有很多討論哪一個最好,什麼目的。 CommonJS更廣泛地用於服務器端JS,而AMD主要用於瀏覽器JS。
RequireJS(requirejs.org)似乎是最流行的AMD系統。
有關JS模塊系統的信息,請閱讀這裏:http://addyosmani.com/writing-modular-js/
- 1. 清理Javascript/Nodejs代碼
- 2. 搞清楚這段JavaScript代碼
- 3. 清理這段代碼[FILE INPUT]
- 4. 清理重複的JavaScript代碼
- 5. 清理代碼宏
- 6. Django清理代碼
- 7. FactoryGirl清理代碼
- 8. 清理HTML代碼
- 9. 源代碼清理
- 10. jquery代碼清理
- 11. 清理SQL代碼
- 12. intellij - 清理代碼
- 13. 清理Ruby代碼
- 14. 清理AS3代碼
- 15. JavaScript代碼段
- 16. 一個類的清理代碼
- 17. 幫忙清理一下Python代碼
- 18. 清理jQuery代碼更好一些
- 19. 無法理解這段JavaScript代碼
- 20. PHP未在JavaScript代碼段中處理?
- 21. BB代碼清單Javascript
- 22. 執行清理代碼?
- 23. 清理源代碼樹
- 24. 運行後清理代碼()
- 25. ReSharper的:在代碼清理
- 26. pyinotify代碼清理smtplib
- 27. Elisp宏清理LaTeX代碼
- 28. 正確的清理代碼
- 29. 如何清理WordPress代碼?
- 30. 清理交替代碼
您可以加載多個js文件,甚至可以菊花鏈連接通話。但最好在多個文件中進行編程(爲了簡化組織),然後在需要上線時將它們連接在一起。在下載一個大文件時看到好處,而不是多個小文件 – vol7ron
您應該查看http://requirejs.org/ – balafi