你想要擴展一個類來增加新的函數(shù)或者替換舊的。
使用 :: 把你的新函數(shù)分配到對象或者類的原型中。
String::capitalize = () ->
(this.split(/\s+/).map (word) -> word[0].toUpperCase() + word[1..-1].toLowerCase()).join ' '
"foo bar baz".capitalize()
# => 'Foo Bar Baz'
在 JavaScript (同樣地,在 CoffeeScript )中,對象都有一個原型成員,它定義了什么成員函數(shù)能夠適用于基于該原型的所有對象。在 CoffeeScript 中,你可以使用 :: 捷徑來直接訪問這個原型。
注意:雖然這種做法在很多種語言中相當(dāng)普遍,比如 Ruby,但是在 JavaScript 中,擴展本地對象通常被認(rèn)為是不好的做法(可參考:可維護的 JavaScript:不要修改你不擁有的對象;擴展內(nèi)置的本地對象。對還是錯?。)