Prototype 似乎是目前最紅 javascript framework,作者善用了Javascript物件導向的特性,增強了 Javascript 的功能與開發便利性。在實際看過之後,發現它並不是一套包裝太多的架構(像是動畫特效的東西就不在裡面),也因此也有一些 framework 如 Script.aculo.us 是以 Prototype 為基礎來開發的。當然,還有 Ruby on Rails 也用 prototype 來達成 Ajax 功能。
參考資源
- Quick Guide to Prototype
- Overview of the Prototype Javascript Library
- Developer Notes for prototype.js
- Prototype in scriptaculous wiki
- Prototype Dissected()
- Ajax 網頁程式設計 沈時宇
它大概包含了哪些東西呢? 例如有:
Base
- Class 物件提供建立類別的方式,讓你可以用 new 語法建立有建構子的物件。
- Object.extend 提供繼承的語法
- try.these 讓你依序執行 一些可能會丟例外的 function
- PeriodicalExecuter 週期執行某function
- $(“elementID”) 即 document.getElementById(“elementID”) 的方便用法
String
- 擴充本來的 String 物件,新增一些function。
Enumerable
- 提供各種迭代的function,不過好用歸好用,小心效率問題。
Array
- 擴充了本來的 Array,另外提供 $A() 來轉成 Enumerable Object
Ajax
- Ajax.Request 發送 ajax request
- Ajax.Updater 同上,但是直接將傳回的html更新到網頁指定的id
- Ajax.PeriodicalUpdater 同上,週期執行
DOM
- 提供 document.getElementsByClassName(className) 讓你根據 class name拿 DOM element
- 提供 Element 物件可以直接操作 DOM,如 Element.addClassName 可以加 class name 等
Form
- 提供對表單的處理,如 $F() 可以取值,Form.serialize 可以序列化表單資料 方便送 ajax request