CoffeeScript 擴展內置對象

2022-06-29 17:07 更新

擴展內置對象

問題

你想要擴展一個類來增加新的函數(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中,你可以使用 :: 捷徑來直接訪問這個原型。

注意:雖然這種做法在很多種語言中相當普遍,比如Ruby,但是在JavaScript中,擴展本地對象通常被認為是不好的做法(可參考:可維護的JavaScript:不要修改你不擁有的對象;擴展內置的本地對象。對還是錯?。)

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號