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