在
上一篇中我们做了一个貌似很酷,但的确没有实际使用价值的例子,其实那不过是javascript继承机制一个非常简单直观的展示而已。prototype,也就是原型,可以说是javascript面向对象的基础,强大的javascript库prototype.js就是这种机制的淋漓展示。关于其中的原理我们不多说,大家自行google之即可。
来点实际的东西吧!
首先我们来看一段ruby代码:
复制内容到剪贴板
代码:
irb(main):004:0> "hello,prototype!".capitalize
=> "Hello,prototype!"ruby的字符串内置了一个capitalize方法,可以将字符串的首字母大写,其它字母统统变小写,如何用javascript实现呢?
这也是问题?真是简单的让人。。。。。
好了,我想大多数js程序员都会写下面这段代码:
复制内容到剪贴板
代码:
function capitalize(str) {
return str.charAt(0).toUpperCase() + str.substring(1).toLowerCase();
}
alert(capitalize("hello,prototype"));的确没有问题,但是。。。。不漂亮、不美观。。或者。。。(貌似)专业一点说,不够OO
联想到上次的例子,稍微动一下脑筋,就有了下面的代码:
复制内容到剪贴板
代码:
<script type="text/javascript">
String.prototype.alert = function() {
alert(this);
}
"Your computer is too SB sir!".alert();
String.prototype.capitalize = function() {
return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase();
}
"hello,prototype!".capitalize().alert();
</script>嗯,我们的字符串自己会做好这一切
是不是有一种冲动?我的字符串还可以。。。。。
的确可以,不过重新造轮子真的不是很必要,有了上面的基础,就去
http://www.prototypejs.org/看看吧
enjoy!