本文整理自网络,侵删。
扩展内置对象
问题
你想要扩展一个类来增加新的函数或者替换旧的。
解决方案
使用 :: 把你的新函数分配到对象或者类的原型中。
String::capitalize = () ->
(this.split(/\s+/).map (word) -> word[0].toUpperCase() + word[1..-1].toLowerCase()).join ' '
"foo bar baz".capitalize()
# => 'Foo Bar Baz'
讨论
在JavaScript (同样地,在CoffeeScript )中,对象都有一个原型成员,它定义了什么成员函数能够适用于基于该原型的所有对象。在CoffeeScript中,你可以使用 :: 捷径来直接访问这个原型。
注意:虽然这种做法在很多种语言中相当普遍,比如Ruby,但是在JavaScript中,扩展本地对象通常被认为是不好的做法(可参考:可维护的JavaScript:不要修改你不拥有的对象;扩展内置的本地对象。对还是错?。)
标签:CoffeeScript
相关阅读 >>
CoffeeScript coffeescrip 的 type 函数
CoffeeScript 使用 html 命名实体替换 html 标签
更多相关阅读请进入《CoffeeScript》频道 >>

Vue.js 设计与实现 基于Vue.js 3 深入解析Vue.js 设计细节
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者