Prototype说明[翻译]

作者:jordan

译者:SPARON    E-MAIL:ZKY-LYJ@163.COM    MSN:ZHAOKEYONG@HOTMAIL.COM

原文:http://blogs.ebusiness-apps.com/jordan/pages/Prototype%20Library%20Info.htm

    在翻译的过程中,我加了一些自己的观点各看法,也加了一些例子,希望对理解上能够有所帮助。如有不正确之处请多多指出。



 

         以下简介中说明Prototype库中提供的功能。它包含了一些有用的功能,修复浏览器bug,我认为这也是一个写好javascript类库的一个榜样。Prototype Library的主页:http://prototype.conio.net/ ,最后版本在http://dev.conio.net/repos/prototype/dist/prototype.js能够找到。可惜的是在这个管方网站也没能找到一个可读性很强的文档。因此,写这份文件是必要的,以避免在阅读源代码时产生两异性,Prototype是永远免费的,你也可以无限制的使用代码,越说越远了,我不是律师,所以。。。

索幸的是Prototype类支持以下浏览器:

  • Microsoft Internet Explorer for Windows, version 6.0 and higher
  • Mozilla Firefox 1.0/Mozilla 1.7 and higher
  • Apple Safari 1.2 and higher

Prototype类分为十多个js文件,我们将逐个介绍。

Base.js

Base.js中有OO的方式定义了一些很有用的对象和方法,以及一些辅助函数。

  • Class:Class对象用于创建类。所以当我们创建类时就可以使用以下方法。

 var PeriodicalExecuter = Class.create();

Abstract:用于创建抽象类。这是一个抽象对象。

  • Try: 把一系列的方法作为参数并且按顺序的一个一个的执行这些方法直到其中的一个成功执行,返回成功执行的那个方法的返回值。

        var transport = Try.these(

               
function() {return new ActiveXObject('Msxml2.XMLHTTP')},

               
function() {return new ActiveXObject('Microsoft.XMLHTTP')},

               
function() {return new XMLHttpRequest()}

        );

Object.extend(destination, source):用于创建继承类。它会将source类中所有的属性、字段、方法拷贝到destination类中,举个简单的例子。

        setOptions: function(options) {

            
this.options = {

              method:       'post',

              asynchronous: 
true,

              parameters:   ''

            }

            Object.extend(
this.options, options || {});

        }

setOptions方法在创建时将自动设置参数this.options,如果用户在继承时传递了参数系统将跳过this.options。这是一个简单的例子,但是需要说明此功能还需要阅读更多的代码。

  • Function.prototype.bind(object):用于绑定对象。
  • Function.prototype.bindAsEventListener(object):将方法绑定到对象,用于事件监听。
  • Number.prototype.toColorPart():使用两位16进制代替三位十进制数。(. 255 => FF, 10 => 0A, 等等).
  • PeriodicalExecuter:用于定期执行特定的功能。
  • $():这是一个辅助方法。它保证我们能够提取到网页中相关元素的内容,就算它没有名字,它也可以通过对象、数组,返回一个正确的值。

Compat.js

Compat.js里有一些方法用于跨浏览器处理。在这文件里有两个方法。

  • Array.prototype.push : 数组的push方法,它可以将一个简单的元素,也可以是一个数组,push到数组末尾。
  • Function.prototype.apply(object, parameters):允许对象称为方法,将方法与对象绑定,以至于使用this能够正解的调用。
posted @ 2006-08-07 11:26  SPARON  阅读(1682)  评论(1编辑  收藏  举报