2012-06-27 68 views
7

我目前在Titanium Studio中使用JavaScript(CommonJS),並對原型設計有疑問。 假設我想爲現有的類添加一個新的函數。例如:在哪裏添加字符串原型

String.prototype.trim = function() { 
    return this.replace(/^\s+|\s+$/g,""); 
} 

什麼是最合適的地方,所以它的所有類面世馬上我要補充這個代碼?

在此先感謝。

回答

8

好吧,我找到了最好的答案(由IvanŠkugor撰寫),我想把它寫在這裏與誰分享同樣的問題。謝謝你的幫助。

「在一般情況下擴展本地原型並不是一個好主意,在這種情況下,在其他一些環境中這應該不是什麼大問題,但通過使用CommonJs,這是一個問題,因爲每個CommonJs模塊都是新的JS因此,任何你在環境中做的事情(比如擴展本地原型)都不會被其他模塊反映出來 正因爲如此,最好的做法是編寫帶有輔助函數的「utils」模塊和「 「需要它的任何地方」。

//utils.js 
exports.trim = function(str) { 
    return str.replace(/^\s+|\s+$/g,""); 
}; 

- 伊萬Škugor

4

只要確定它是在任何代碼嘗試使用它之前定義的,那麼您將被設置!

+0

謝謝您的回答肖恩。 但是,在這方面我應該怎麼做? – junior

+0

如果你有一個你在各地使用的圖書館,你可以隨時把它放在那裏。我通常定義的函數可以添加到我所包含的任何庫的頂部的內置類中,以保持內容整齊。與我定義CSS文件頂部的HTML標籤的CSS屬性以及之後的classes/ids一樣。 –

5

你舉的例子是一個很好的使用,因爲大多數瀏覽器都有自己的裝飾方法,所以最好是來測試本機添加您自己之前:

String.prototype.trim= String.prototype.trim || function(){ 
    return this.replace(/^\s+/, '').replace(/\s+$/, ''); 
}