mooTools
官方網(wǎng)址:http://mootools.net/
下載地址:http://mootools.net/download
release 1.00
mooTools is released under the Open Source MIT license, which permits you to use it and modify it in every circumstance.
description:
MooTools is a compact, modular, Object-Oriented javascript framework designed to make writing extensible and compatible code easier and faster. MooTools lets you get the job done efficiently and effectively.
今天Felix托我給他改個(gè)滑動(dòng)的效果,讓我第一次認(rèn)真的讀了mooTools的部分源碼,也著實(shí)體驗(yàn)了一把mooTools的與眾不同,我最初的反應(yīng)是把JavaScript寫(xiě)成這樣誰(shuí)會(huì)用啊!因?yàn)榈谝粋€(gè)五分鐘我硬是沒(méi)有找到我new的一個(gè)對(duì)象的參數(shù)傳到哪里去了。在mooTools里不僅看到了extend,而且還找到了implement。它的寫(xiě)法是如此的OO,以致于你只讀一個(gè)類更本就不可能搞明白它在干什么,必須去找到它所有的父類,逐一分析。這也是它跟鼎鼎大名的prototype的顯著區(qū)別。
大家都會(huì)覺(jué)得prototype好用,因?yàn)榇蠹乙廊谎永m(xù)著“舊式”的JavaScript編寫(xiě)風(fēng)格,雖然prototype是做到了一定的OO,而使用prototype依然非常“直接”,甚至根本就不用考慮它OO不OO,你如果只想用其中一個(gè)小方法,拷貝4、5行prototype精妙的代碼出來(lái)就可以為己所用,但是在mooTools大致是做不到的。prototype可以看作把一些常用的方法進(jìn)行了整理,提供一系列工具式的方法或者API,誰(shuí)不喜歡把東西拿來(lái)就用,有工具多好啊,所以prototype幾乎成了標(biāo)準(zhǔn)的JavaScript lib。
而mooTools可不只是自己做到OO,并且從某種意義上來(lái)說(shuō)它“強(qiáng)迫”你也OO,因?yàn)槟闳绻皇窍胝乙粋€(gè)工具函數(shù)快速的取到一個(gè)element的坐標(biāo),或者利用xmlhttprequest與后臺(tái)通信然后更新一個(gè)div的信息你會(huì)發(fā)現(xiàn)mooTools簡(jiǎn)直就是個(gè)太糟糕的lib,超級(jí)難用。但是如果你在運(yùn)用OO編寫(xiě)一個(gè)widget,或者整個(gè)項(xiàng)目的UI,你會(huì)發(fā)現(xiàn)prototype的調(diào)用太雜亂無(wú)章,自己都摸不著頭腦,這個(gè)時(shí)候你再拿出mooTools的時(shí)候你會(huì)發(fā)現(xiàn)竟然JavaScript能夠這么OO,能夠這么的好用。
在這里也不準(zhǔn)備貼代碼來(lái)舉例對(duì)比prototype與mooTools,一是因?yàn)間oogle可以找到很多它們相關(guān)的sample代碼,完全可以拿過(guò)來(lái)研究;二是因?yàn)槲也⒉幌氡容^它們,因?yàn)樗鼈兏舅鶓?yīng)用的環(huán)境和面向的對(duì)象根本就不一樣,沒(méi)有比較的意義。
且不說(shuō)孰好孰壞,只知道它們都是簡(jiǎn)單但強(qiáng)大到一種境界的lib。prototype適合作為工具來(lái)使用,讓你覺(jué)得有了它之后我的JavaScript腳本能夠更方便的做更多事情了;而mooTools更適合作為編寫(xiě)較復(fù)雜的widget或者UI時(shí)的JavaScript語(yǔ)言面向?qū)ο筇匦缘脑鰪?qiáng)支持。
強(qiáng)烈推薦對(duì)JavaScript OO有興趣的朋友研究一下mooTools,一個(gè)如此迷人的JavaScript Lib,一如它官方首頁(yè)
http://mootools.net的樣子。
posted on 2007-04-02 01:40
cresposhi 閱讀(6293)
評(píng)論(20) 編輯 收藏