2010-07-24 174 views
3

是否可以創建自己的定製,我相信這個術語是'方法'?例如,像這樣:自定義替換方法?

其中replaceSpecial()將自動替換說,與別的字母e。

我對這樣做感興趣的原因是因爲我想要做的是抓取字符串,然後運行大量的替換動作,所以我希望當我調用replaceSpecial()時它會運行功能。

感謝

回答

8

您可以添加方法String.prototype,這將成爲提供給所有字符串。例如,trim()就是在大多數庫中實現的。

String.prototype.replaceSpecial = function() { 
    return this.replace(/l/g, 'L'); 
}; 

"hello".replaceSpecial(); // heLLo 

但是請注意,它通常是一種不好的做法,在本機的原型定義非常具體功能。以上是完全相同的問題的一個很好的例子。對於這種特定情況,請考慮使用自定義函數或包裝來完成這項工作。例如,可以在自定義命名空間下使用。

var StringUtils = { 
    replaceSpecial: function(str) { .. }, 
    .. 
}; 

StringUtils.replaceSpecial("hello"); // heLLo 
+0

謝謝你的幫助。 :) – Pete 2010-07-24 21:21:14

+0

非常歡迎:) – Anurag 2010-07-24 21:29:34

+0

+1。值得一提的是,增加Object.prototype或Array.prototype是不好的。有一些情況下,修改其他內置構造函數的原型也很粗略......例如,dynarch日曆腳本修改了'Date.prototype',最終打破了其他一些常見腳本,我不記得哪一個此時此刻。 – 2010-07-24 21:34:50