JavaScript :: Prototype
Prototype 是一個面相對象的 JavaScript 庫,目標是輕鬆實現動態 WEB 開發。其使用 JavaScript 模擬了 OO 的抽象、繼承等特性,還提供了對錶單、效果、Ajax 等的 OO 操作方式,使用起來很自然、方便。最初 Prototype 的開發是爲了 Ruby on Rails 框架,但對於 JavaScript 庫而言,其可適用於各種環境中。
我比較關心的是其源碼中的 effect.js 和 ajax.js,對於動態效果而言,Effect 確實可以免去很多重複勞動 :) 。另外,prototype.js 中的代碼也很有趣,應該說是作者的想法很奇妙,以下是片段:
var Class = { create: function() { return function() { this.initialize.apply(this, arguments); } } } var Abstract = new Object(); Object.prototype.extend = function(object) { for (property in object) { this[property] = object[property]; } return this; }發現這個代碼在幹嘛了嗎?嘻嘻,很有意思,特別是 Object.prototype.extend,用來模擬對象的繼承功能。