Prototype1.4手册_prototype_脚本之家

prototype.js开采者手册 对应版本1.4.0 original article by sp Sergio
佩雷拉

last update: March 30th 2006

一:简介

中文版:THIN

中文版:THIN

末段更新:2005-3-31

最后更新:2006-3-31

观望贰个很好的东西在境内从未被很四个人接收起来,实乃不爽,所以花了超级大素养把那一个手册翻译成粤语,由于那篇文章很短,所以,翻译的工作量十分大并且有些地点日语版也并未有说知道,虽得查看源代码,幸并不是坚定不移做完了,我们打气下啊!^o^prototype.js是三个老大高贵的javascript根底类库,对javascript做了汪洋的扩大,并且很好的支撑Ajax,外国有多个依靠此类库完成的功能库,也做得很棒。prototype.js不止是一个有非常大实用价值的js库,何况有非常高的求学价值,所以自个儿刚烈建议B/S开垦职员和对JS开垦感兴趣的相爱的人去浏览部分它的源代码,个中有无数的珠玑,你相对会感觉读它的源代码是生机勃勃种享受,当然要读得懂,呵呵。网络也可能有人写过1.3版的源码解读,大家能够找来看看。可是1.4版做了相当的大的恢宏,所以指望有对象写出1.4版的源码解读。几点表达:
有朋友说prototye已经有人翻译过了,呵呵,是没错,表明你早先关怀过它,然而原本翻译的是1.3版的文书档案,1.4版有为数不菲第风流倜傥的扩展,并且pre_1.5版今后也出来,不地改变一点都不大。
有朋友说有用多没有翻译地来的,拜托,只是各种艺术的参数表达没有翻,这么些验证比非常多都以何许品种,照旧有空再弄呢,先将就一下,对不起了,翻到这些顺序已经很累人了,究竟有这么长。
做成CHM文书档案的事也必须要Sorry,因为作者并未有那一个日子,也向来不做过CHM,笔者感觉制版一下看网页和CHM是大致吧。

prototype.js 是什么?

prototype.js是什么?

设若您未有选择过知名的prototype.js,那么让自身来告诉你,prototype.js是由SamStephenson写的二个javascript类库。那几个思虑神奇,并且卓绝规范的类库,能帮助您轻轻巧松创立有可观相互影响的web2.0
性情的富客商端页面。

风流倜傥旦您从未利用过有名的prototype.js,那么让小编来报告您,prototype.js是由萨姆Stephenson写的多少个javascript类库。这几个观念奇妙,并且异常标准的类库,能帮忙您轻轻便松建设布局有惊人相互影响的web2.0特征的富顾客端页面。

借使您近期尝试接收它,你大致领会到文书档案并不是笔者的二个铮铮铁汉。和在自己原先使用那几个类库的广大开垦者同样,大器晚成初步,小编只可以一头扎进阅读
prototype.js
的源代码和尝试它的功用中。小编想,在自个儿上学完它今后,把小编学到的东西分享给我们是件不错的事。

假设您方今尝试接收它,你大概领会到文书档案并非小编的三个血性。和在小编早先使用这么些类库的成都百货上千开荒者同样,豆蔻梢头起始,作者一定要贰头扎进阅读prototype.js的源代码和尝试它的效劳中。作者想,在自己读书完它以往,把自家学到的事物分享给我们是件不错的事。

还要,在本文中,小编也将提供四个关于这么些类库提供的objects,classes,functions,extensions那对东东的不法参照他事他说加以考察

再正是,在本文中,小编也将提供叁个关于那么些类库提供的objects,classes,functions,extensions那对东东的违法参谋

在阅读这么些文书档案时,熟稔 Ruby 的开垦者将会小心到 Ruby
的片段内建类和本类库增添达成之间丰盛相同。

在阅读这么些文书档案时,熟习Ruby的开拓者将会注意到Ruby的有的内建类和本类库扩充完成之间充足相通。

有关小说

连锁随笔

Advanced JavaScript guide.

Advanced JavaScript guide.

二:一些实用的函数

一些实用的函数

以此类库带有超级多预约义的靶子和实用函数,这么些东东的指标明显是把你从部分重复的打字中解放出来

那一个类库带有超级多预订义的靶子和实用函数,那么些东东的指标明显是把你从部分双重的打字中解放出来

2.1 使用$()方法

接纳$ 方法是在DOM中选拔过度频繁的 document.getElementById(卡塔尔(قطر‎方法的三个方便的简写,就像这么些DOM方法生机勃勃致,那些艺术重回参数字传送入的id的非常成分。

$() 方法是在 DOM 中使用过度频仍的 document.getElementById(卡塔尔国方法的多个造福的简写,就如这么些 DOM 方法豆蔻梢头致,那个情势再次来到参数字传送入的 id
的特别成分。比起 DOM 中的方法,那么些更胜一筹。你能够流传几个 id
作为参数然后 $(State of Qatar 重回二个包涵全体需求的因素的叁个 Array 对象。

比起DOM中的方法,那么些更胜一筹。你能够流传多个id作为参数然后 $(State of Qatar再次来到多少个暗含全体须要的成分的二个 Array 对象。

<HTML> 

 Test Page function test1;alert;}function test2(){var divs = $;for(i=0; i&lt;divs.length; i++){alert;}}This is a paragraphThis is another paragraph

<HEAD> 

别的三个实惠是,这些函数能传回用string表示的靶子ID,也足以流传对象自己,那样,在建设构造其它能传三种等级次序的参数的函数时非常有效。

<TITLE> Test Page </TITLE> 

采取$F函数是另一个大收应接的“连忙键”,它能用于再次来到任何表单输入控件的值,比方text
box,drop-down list。那个办法也能用成分id或因素自个儿做为参数。

<script src=”prototype1.4.js”></script> 

function test3(){alert;}
Buchanan, StevenCallahan, LauraDavolio, Nancy

<script>  

动用$H函数把风华正茂部分对象转产生三个可枚举的和协助进行数组近似的Hash对象。

function test1(){      

function testHash(){//let's create the objectvar a = {first: 10,second: 20,third: 30};//now transform it into a hashvar h = $H;alert; //displays: first=10&amp;second=20&amp;third=30}

    var d=$(‘myDiv’);      

使用$R是new ObjectRange(lowBound,upperBound,excludeBounds)的缩写。

    alert(d.innerHTML); 

跳到ObjectRange 类文书档案能够看到一个关于此类的完全描述.
那时,我们依然先来看三个例子以呈现那个缩写能代替哪些方法吗。别的有关的一些知识能够在Enumerable
对象文书档案中找到。

     

function demoDollar_R(){var range = $R;range.each(function{alert;}

     

使用Try.these()函数

Try.these()
方法使得完成当你想调用差别的方式直到个中的三个中标不荒谬的这种供给变得极其轻易,
他把生龙活虎密密层层的法子作为参数而且按梯次的三个一个的进行那个办法直到个中的叁个得逞实施,重返成功奉行的这些格局的再次来到值。

function test2(){ 

在底下的例子中,
xmlNode.text在局地浏览器中好用,不过xmlNode.textContent在另生龙活虎部分浏览器中符合规律工作。
使用Try.these()措施大家得以拿到符合规律办事的老大方式的再次回到值。

    var divs=$(‘myDiv’,’myOtherDiv’); 

Ajax对象

    for(i=0;i<divs.length;i++){ 

地方提到的共通方法丰裕好,不过直面它呢,它们不是最高端的这类东西。它们是啊?你很恐怕自身编辑了那一个以至在你的剧本里面有近似功效的主意。然则这几个主意只是冰山风流潇洒角。

        alert(divs[i].innerHTML);          

自家很肯定你对prototype.js感兴趣的案由很恐怕是由于它的AJAX工夫。所以让我们疏解当您须要完结AJAX逻辑的时候,这几个包怎样让它更易于。

    } 

Ajax 对象是一个预约义对象,由那些包创设,为了封装和简化编写AJAX
功效涉及的奸诈的代码。
这些目的满含一丰富多彩标封装AJAX逻辑的类。大家来看看里面多少个类。
使用Ajax.Request类

}</script> 

只要您不接收任何的帮手程序包,你相当大概编写了全部大气的代码来创建XMLHttpRequest目的况兼异步的跟踪它的历程,
然后解析出响应
然后甩卖它。当您不要求协理多于黄金年代体系型的浏览器时你会认为分外的托福。

</HEAD>  

为了扶持 AJAX 功效。那些包定义了 Ajax.Request类。

<BODY>  

一经你有二个应用程序能够因而url
与服务器通讯。它回到上边这样的XML
响应。

<div id=”myDiv”>  

12341998-01$8,115.3612341998-02$11,147.51

<p>This is a paragraph</p>  


Ajax.Request指标和服务器通讯况兼得到这段XML是特别简单的。上面包车型客车例证演示了它是什么样做到的。

</div>  

function searchSales(){var empID = $F;var y = $F;var url = 'http://yoursever/app/get_sales';var pars = 'empID=' + empID + '&amp;year=' + y;var myAjax = new Ajax.Request(url,{method: 'get',parameters: pars,onComplete: showResponse});}function showResponse{//put returned XML in the textarea$.value = originalRequest.responseText;}Buchanan, StevenCallahan, LauraDavolio, Nancy199619971998

<div id=”myOtherDiv”>  

你注意到传播 Ajax.Request布局方法的第四个目的了呢?
参数{method: 'get', parameters: pars, onComplete: showResponse}
表示叁个无名对象的真实性写法。他表示您传入的那个指标有一个名叫 method
值为 'get'的属性,另二个属性名称为 parameters
蕴涵HTTP诉求的询问字符串,和一个onComplete
属性/方法包涵函数showResponse

<p>This is another paragraph</p>  

再有大器晚成都部队分其余的天性能够在此个指标里面定义和安装,如
asynchronous,可以为truefalse
来决定AJAX对服务器的调用是还是不是是异步的(暗中认可值是 true)。

</div>  

那些参数定义AJAX调用的选项。在大家的例证中,在第三个参数通过HTTP
GET命令需要那些url,传入了变量 pars带有的询问字符串,
Ajax.Request目的在它做到接受响应的时候将调用showResponse 方法。

<input type=”button” value=Test1 onclick=”test1();”><br>
<input type=”button” value=Test2 onclick=”test2();”><br> 

也许你精通,
XMLHttpRequest在HTTP央求时期将报告进程情状。那个速度被描述为多个区别阶段:Loading,
Loaded, Interactive, 或 Complete。你能够使 Ajax.Request
对象在任何等级调用自定义方法 ,Complete
是最常用的叁个。想调用自定义的主意只须求轻便的在号令的选项参数中的名为
onXXXXX 属性/方法中提供自定义的艺术对象。 犹如大家例子中的
onComplete 。你传入的法子将会被用四个参数调用,那几个参数是
XMLHttpRequest
对象本人。你将会用那一个目的去得到重临的多少同有时候只怕检查包含有在这里次调用中的HTTP结果代码的
status 属性。

</BODY>  

还也可以有其它七个有效的选项用来管理结果。咱们得以在onSuccess
选项处传入二个主意,当AJAX正确的施行完后调用,
相反的,也能够在onFailure筛选处传出一个办法,当服务器端出现谬误时调用。正如onXXXXX
选项传入的办法后生可畏致,那多少个在被调用的时候也传播一个包含AJAX央浼的XMLHttpRequest对象。

</HTML>

我们的事例未有用其余有意思的不二秘籍管理这一个 XML响应,
大家只是把这段XML放进了二个文本域里面。对这一个响应的四个名列前茅的运用相当的大概便是找到当中的想要的音信,然后更新页面中的某个因素,
可能以致可能做一些XSLT调换而在页面中发生部分HTML。

其它叁个功利是,这些函数能传播用 string 表示的目的ID,也得以流传对象自己,那样,在确立其余能传二种档期的顺序的参数的函数时十三分实用。

在1.4.0版本中,蓬蓬勃勃种新的事件回传外轮理货公司被引进。要是您有生机勃勃段代码总是要为三个新鲜的风浪实践,而无论是是哪些AJAX调用引发它,那么你能够利用新的Ajax.Responders对象。

2..2使用$F()函数

若是你想要在二个AJAX调用正在运营时,展现一些提示效果,像八个连发转动的Logo之类的,你能够采纳五个全局事件Handler来做到,此中二个在率先个调用开首时突显Logo,另三个在最终三个调用完结时隐蔽Logo。看下边包车型客车事例。

$F(卡塔尔函数是另叁个大收应接的“火速键”,它能用来再次回到任何表单输入控件的值,比如text box,drop-down list。那几个艺术也能用成分 id 或因素本人做为参数。

var myGlobalHandlers = {onCreate: function(){Element.show;},onComplete: function() {if(Ajax.activeRequestCount == 0){Element.hide;}}};Ajax.Responders.register;Loading...

<script> 

更完全的解释,请参谋 Ajax.Request 参照他事他说加以考察 和 Ajax选项参谋。

function test3(){ 

使用Ajax.Updater类

    alert($F(‘userName’));     

风流浪漫旦你的服务器的另大器晚成端重回的新闻已然是HTML了,那么使用这么些程序包中
Ajax.Updater
类将使您的活着变得进一层得轻松。用它你只需提供哪二个因素要求被AJAX诉求再次回到的HTML填充就足以了,例子比本人写表达的更明亮。

function getHTML(){var url = 'http://yourserver/app/getSomeHTML';var pars = 'someParameter=ABC';var myAjax = new Ajax.Updater('placeholder',url,{method: 'get',parameters: pars});}

</script> 

您能够见到,这段代码比后面包车型大巴事例越发简明,不富含 onComplete
方法,然而在结构方法中盛传了八个成分id。
大家来微微修改一下代码来汇报怎么着在客商端管理服务器段错误成为大概。

<inputtype=”text”id=”userName”value=”Joe Doe”><br> 

咱俩将加盟愈来愈多的选项, 钦定管理错误的四个方法。那么些是用 onFailure
选项来实现的。我们也钦定了三个 placeholder
唯有在功成名就乞求之后才会被填充。为了达成这么些目标大家改正了第五个参数从二个简单易行的要素id到叁个暗含两性子格的靶子,
successfailure 在上面的例证中从不动用failure属性,而独自在
onFailure 处使用了 reportError 方法。

<inputtype=”button”value=Test3onclick=”test3();”><br>

借使您的服务器逻辑是连同HTML 标识重返JavaScript 代码,
Ajax.Updater目的足以推行那段JavaScript代码。为了使这些指标相比较响应为JavaScript,你只需在末了参数的对象布局方法中轻松参与evalScripts: true质量。不过值得一说示的是,像那几个选项名evalScripts暗暗表示的,那一个脚本会被施行,然则它们不会被投入到Page的本子中。“有如何分歧?”,可能您会这么问。大家只要须求地址重临的东东像那样:

2.3 使用$A()函数

function sayHi;}

$A(卡塔尔(قطر‎函数能把它接纳到的单个的参数转变到二个 Array 对象。

尽管你以前那样尝试过,你掌握那么些本子不会如您所企望的那么行事,原因是这段脚本会被实施,但像上边那样的本子实践并不会创设四个称得上sayHi的函数,它什么也不做。假使要成立一个函数,我们相应把代码改成上边那一个样子:

这些主意,结合被本类库增加了的 Array
类,能有协助的把其他的可枚举列表调换到或拷贝到三个 Array
对象。三个推荐介绍的用法正是把 DOM Node Lists 转变到三个普通的 Array
对象,从而更有功用的拓宽遍历,请看下边包车型客车例子。

sayHi = function;};

<script>

怎么我们在上头的代码中不行使var关键字来声称这么些变量呢,因为这样做成立出来的函数将只是最近脚本块的多个局地变量。不写var关键字,创立出来的靶子的成效域便是大家所企盼的window。

function showOptions(){ 

更加多相关知识,请参照他事他说加以考查 Ajax.Updater reference 和options reference.

    var someNodeList=$(‘lstEmployees’).getElementsByTagName(‘option’); 

枚举… 噢!噢!

    var nodes=$A(someNodeList); 

您领会,大家都以这般来做巡回的,建一个Array,用elements协会它们,再建多少个生生不息布局通过index数字来访谈每一个element,再用这些element做一些动作。

    nodes.each(function (node){ 

当你想到当时,你会发觉差不离每一趟写循环代码你都会迟早用到三个Array。那么,借使Array对象可以提供越多的功力给它们的迭代器使用不是很爽吗?确实是那样,事实上相当多的编制程序语言都在它们的Array或此外相仿的布局中提供部分如此的效用。

        alert(node.nodeName+’: ‘+node.innerHTML);          

近来好了,prototype.js了给大家多个Enumerable对象,它完成了非常多和可迭代数据开展相互的法门。和原本的JS对象比较prototype.js更上生龙活虎层楼,它对Array
类s扩充了独具枚举要用的函数。

    });     

循环, Ruby样式的

}

在正规的javascript中,若是您想把二个array中的全部elements呈现出来,你能够像下边代码那样写得很好:

</script> 

function showList(){var simpsons = ['Homer', 'Marge', 'Lisa', 'Bart', 'Meg']; for(i=0;i&lt;simpsons.length;i++){alert;}}

<selectid=”lstEmployees” size=”10″> 

运用我们新的最佳的心上人,prototype.js,大家得以把它生写成那样

 <optionvalue=”5″>Buchanan,Steven</option> 

 function showList(){var simpsons = ['Homer', 'Marge', 'Lisa', 'Bart', 'Meg']; simpsons.each( function{alert;}

 <optionvalue=”8″>Callahan,Laura</option> 

你或者会想“十分吃惊的法子…相对旧的,这种语法太奇怪了”。哦,在上头的例子,确实什么也不曾,在这里个大约得要死例子中,也从不改变动太多啊,纵然如此,请继续读下来。

 <optionvalue=”1″>Davolio,Nancy</option> 

在后续上面内容前面,你注意到特别被做为四个参数字传送递给each函数的函数?大家把它知道成迭代器函数。

</select> 

Your arrays on steroids

<inputtype=”button”value=”Show the
options”onclick=”showOptions();”> 

就疑似大家地方提到的,把你的Array中的elements当成肖似的种类应用相符的性质和函数是很通用的。让我们看看哪些利用大家新的力气刚劲的Arrays的迭代功效吗。

2.4 使用$H() 函数

依照规范找到八个element。

$H(卡塔尔国函数把部分对象转变来一个可枚举的和同步数组相同的 Hash 对象。

function findEmployeeById{var listBox = $var options = listBox.getElementsByTagName;options = $A;var opt = options.find( &lt;STRONG&gt;function{return (employee.value == emp_id);}&lt;/STRONG&gt;);alert; //displays the employee name}Buchanan, StevenCallahan, LauraDavolio, Nancy

<script> 

明日大家再下朝气蓬勃城,看看哪些过滤多少个Array中的元素,从各类元素中得到大家想要的分子。

function testHash() 

function showLocalLinks{paragraph = $;var links = $A(paragraph.getElementsByTagName;//find links that do not start with 'http'var localLinks = links.findAll{var start = link.href.substring;return start !='http';});//now the link textsvar texts = localLinks.pluck;//get them in a single stringvar result = texts.inspect;}This text hasa lot oflinks. Some areexternaland some are local

{   

下面的代码仅仅是有些细微的执行令人爱上这种语法。请参见
Enumerable和Array的享有函数

//let’s create the object  

prototype.js参考

    var a={ 

JavaScript类扩展

        first:10,second:20,third:30 

prototype.js 类库完结强大成效的大器晚成种路子是扩展本来就有的JavaScript 类。

    }; 

对 Object的扩展

    //now transform it into a hash  

Method

var h=$H(a);      

Kind

    alert(h.toQueryString()); 

Arguments

    //displays: first=10&second=20&third=30  

Description

     

extendstaticdestination: any object, source: any
object提供意气风发种通过拷贝全体源以象属性和函数到对象函数完成持续的法门inspectstatictargetObj:
any
object再次来到可读性好有关目的对象的文字描述,要是目的实例未有概念一个inspect函数,暗许重回toString函数的值。

对Number的扩展

</script>

Method

2.5 使用$R()函数

Kind

$R()是 new ObjectRange(lowBound,upperBound,excludeBounds)的缩写。

Arguments

跳到ObjectRange 类文书档案能够看看三个有关此类的欧洲经济共同体描述.
那个时候,大家仍然先来看多少个例子以显示那么些缩写能代表哪些方法吧。其余相关的风度翩翩对知识能够在Enumerable 对象文书档案中找到。

Description

<script> 

toColorPart(卡塔尔(قطر‎instance重临数字的十五进制表示情势。在把三个冠道GB数字转变来HTML表现情势时很有用。succ重返下贰个数字,这么些情势可用以迭代调用处景中。
timesinstanceiterator: a function object conforming to FunctionCalls the
iterator function repeatedly passing the current index in the index
argument. 反复调用iterator函数并传递当前index到iterator的index参数。

function demoDollar_R(){ 

下边包车型客车例证用提示框展现0-9。

    var range=$R(10,20,false); 

function demoTimes(){var n = 10;n.times{alert;/**************************** you could have also used:* ;***************************/}

    range.each(function (value,index){ 

对 Function扩展

        alert(value);         

Method

    });     

Kind

Arguments

</script>

Description

<input type=”button” value=”Sample Count” onclick=”demoDollar_R();”
>

bindinstanceobject: the object that owns the
method重临function的实例,那些实例和源function的组织同样,然则它已被绑定给了参数中提供的object,正是说,function中的this指针指向参数object。bindAs伊夫ntListenerinstanceobject:
the object that owns the
method用法和上边的bind同样,区别在于用来绑定事件。

2.6 使用Try.these()函数

让大家看看哪些使用这个扩张。

Try.these(State of Qatar方法使得完成当你想调用不一致的主意直到个中的叁当中标平常的这种必要变得特别轻便,
他把生机勃勃多级的章程作为参数而且按梯次的豆蔻梢头

 Test?//declaring the classvar CheckboxWatcher = Class.create();//defining the rest of the class implementationCheckboxWatcher.prototype = {initialize: function {this.chkBox = $;this.message = message;//assigning our method to the eventthis.chkBox.onclick =this.showMessage.bindAsEventListener;},showMessage: function {alert(this.message + ' ;}};var watcher = new CheckboxWatcher;

个多少个的实行那些艺术直到个中的叁个得逞实行,再次回到成功实行的百般情势的重临值。

对String的扩展

在上边包车型客车例子中,
xmlNode.text在一些浏览器中好用,不过xmlNode.textContent在另生机勃勃部分浏览器中平常专业。
使用 Try.these(State of Qatar

Method

艺术大家可以获得寻常办事的十三分格局的重临值。

Kind

<script> 

Arguments

function getXmlNodeValue(xmlNode){ 

Description

    return Try.these(function (){ 

stripTags重返一个把具备的HTML或XML标识都移除的字符串。stripScripts(卡塔尔国instance再次回到三个把全体的script都移除的字符串。escapeHTML重回多个把拥有的HTML标志合适的转义掉的字符串。unescapeHTMLescapeHTMLinstance再次来到二个包含在string中找到的保有

        return xmlNode.text; 

在prototype.js中定义新的目的和类

         

另三个以此顺序包扶助你之处正是提供好多既扶持面向对象设计理念又有共通功用的居多对象。

    },function (){ 

The PeriodicalExecuter object

        return xmlNode.textContent; 

这么些指标提供一定间隔时间上重复调用二个办法的逻辑。

        )); 

Method

         

Kind

    } 

Arguments

</script>

Description

三:Ajax对象

[ctor]constructorcallback: a parameterless function, interval: number
of seconds创立那些指标的实例将会再次调用给定的主意。

下边提到的共通方法丰富好,可是直面它吧,它们不是最高端的那类东西。它们是吗?你很恐怕自身编写了那么些以至在你的脚本里面有周围意义的办法。然则这么些点子只是冰山意气风发角。

Property

自个儿很自然你对prototype.js感兴趣的案由很或者是出于它的AJAX手艺。所以让大家解释当你必要产生AJAX逻辑的时候,那几个包如何让它更易于。Ajax
对象是二个预订义对象,由那些包创建,为了封装和简化编写AJAX
效能涉及的刁钻的代码。
那一个指标包括生龙活虎雨后冬笋的封装AJAX逻辑的类。大家来探视当中多少个类

Type

3.1 使用Ajax.Request类

Description

假如您不应用别的的声援程序包,你十分大概编写了整整大气的代码来创立XMLHttpRequest对象并且异步的追踪它的经过,
然后解析出响应
然后管理它。当您无需辅助多于黄金年代体系型的浏览器时你会感觉极度的幸好。

callbackFunction(卡塔尔国被调用的办法,该办法不能够流传参数。frequencyNumber以秒为单位的间隔。currentlyExecutingBoolean表示那么些艺术是不是正在实践。

为了扶助 AJAX 功能。那个包定义了 Ajax.Request 类。

The Prototype object

如果你有叁个应用程序能够透过url

响应。

Prototype 未有太首要的功效,只是评释了该程序包的版本 。

<?xml version=”1.0″ encoding=”utf-8″ ?> 

Property

<ajax-response> 

Type

  <response type=”object” id=”productDetails”> 

Description

    <monthly-sales> 

VersionString版本。emptyFunctionFunction(卡塔尔(قطر‎空函数。KFunction一个意气风发味回传参数的函数。ScriptFragmentString识别script的正则式。

      <employee-sales> 

The Enumerable object

        <employee-id>1234</employee-id> 

Enumberable对象能够已更文雅的法子得以完成对列表样式的组织举行枚举。

        <year-month>1998-01</year-month> 

不菲别的的指标通过扩充自Enumberable对象来博取那些卓有成效的接口。

        <sales>$8,115.36</sales> 

Method

      </employee-sales> 

Kind

      <employee-sales> 

Arguments

        <employee-id>1234</employee-id> 

Description

        <year-month>1998-02</year-month> 

eachinstanceiterator: a function object conforming to
Function把各样element做为第二个参数,element的index作为第一个参数调用iterator函数。allinstanceiterator:
a function object conforming to
Function这些函数会用给出的iterator测量检验整个集结,借使集结中任一成分在iterator函数测量检验中回到false或null,那么那几个函数重临false,不然再次回到true。若无交到iterator,那么就能够测量试验全部的要素是或不是不等于false和null。你可以大概的把它看做是“检测各样成分都为非空非负”。
anyinstanceiterator: a function object conforming to Function,
optional.那几个函数会用给出的iterator测验整个会集,假若群集中任一成分在iterator函数测验中回到true,那么那几个函数重返true,否则重临false。若无交给iterator,那么就能够测验全数的要素是或不是有多个不等于false和null。你能够简简单单的把它充当是“检查测量试验成分中是或不是有非空非负的”。
collectinstanceiterator: a function object conforming to
Function调用iterator函数依照集合中各种成分重临五个结出,然后根据原先集合中的顺序,再次来到三个Array。
detectinstanceiterator: a function object conforming to
Function集结中各样成分调用二次Iterator,重返第一个使Iterator再次回到True的成分,尽管最终都未曾为true的调用,那么再次来到null。
entries等于toArrayinstanceiterator: a function object conforming to
Function等于 detectinstanceiterator: a function object conforming to
Function群集中种种元素调用Iterator,再次回到一个由拥有调用Iterator重回结果卓绝true的因素构成的数组。和reject(卡塔尔相反。
grepinstancepattern: a RegExp object used to match the elements,
iterator: a function object conforming to
Function用pattern参数正则表明式测验集结中的每一种成分,重回二个包罗全数相称正则式的因素的Array,要是给出了Iterator,那么些每一种结果还要通过一下Iterator管理。
includeinstanceobj: any object推断会集中包不分包钦命对象。
inject(initialValue, iteratorState of QatarinstanceinitialValue: any object to be
used as the initial value, iterator: a function object conforming to
Function(accumulator, value,
index卡塔尔用Iterator联接全部群集中的成分。Iterator在被调用时把上一遍迭代的结果做为第多个参数字传送给accumulator。第一次迭代时,accurmelator等于initialValue,最终回来accumulator的值。
invoke(methodName [, arg1 [, arg2 […]]]卡塔尔(قطر‎instancemethodName: name
of the method that will be called in each element, arg1..argN: arguments
that will be passed in the method
invocation.会集中的每一种成分调用钦赐的函数(查看源代码能够开掘内定函数被调用时,this指针被传成当前成分),并传到给出的参数,重回调用结果组成的Array。
mapinstanceiterator: a function object conforming to
Function同collectinstanceiterator: a function object conforming to
Function再次回到集结桐月素的最大值,或调用Iterator后再次来到值的最大值。
memberinstanceobj: any object同 includeinstanceiterator: a function
object conforming to Function再次回到最小值,参见max(卡塔尔(قطر‎。
partitioninstanceiterator: a function object conforming to
Function再次回到二个含有两个Array的Array,第叁个Array满含全部调用Iterator重回True的因素,第叁个Array包括剩下的要素。若是Iterator未有提交,那么就依靠成分自个儿判别。
pluckinstancepropertyName name of the property that will be read from
each element. This can also contain the index of the
element重回每种成分的钦点属性名的质量的值组成的Array。
rejectinstanceiterator: a function object conforming to Function和
findAll. selectinstanceiterator: a function object conforming to
Function同 findAllinstanceiterator: a function object conforming to
Function依照种种成分调用Iterator再次回到的值举行排序再次来到一个Array。
toArray再次来到由集结全数因素结合的二个Array。 zip(collection1[,
collection2 [, … collectionN [,transform]]]卡塔尔instancecollection1
.. collectionN: enumerations that will be merged, transform: a function
object conforming to
Function合併每种给出的聚合到当下集合。归总操作再次回到一个新的array,那个array的因素个数和原集结的要素个数相同,这些array的各类成分又是一个子array,它归总了颇具集结中同样index的因素。假若transform函数被钦定,那么array的种种元素还或然会调用transform函数先做管理。比如:
[1,2,3].zip.inspect()返回 “[ [1,4,7],[2,5,8],[3,6,9] ]”

        <sales>$11,147.51</sales> 

The Hash object

      </employee-sales> 

Hash对象实现生机勃勃种Hash结构,也正是二个Key:Value对的见面。

    </monthly-sales> 

Hash中的各样Item是八个有八个要素的array,前叁个是Key,后贰个是Value,每一个Item也可以有四个不需加以印证的性质,key和value。

  </response> 

Method

</ajax-response> 

Kind

用 Ajax.Request对象和服务器通讯并且拿到这段
XML是特别简单的。上边包车型地铁例证演示了它是怎样完毕的。

Arguments

<script> 

Description

function searchSales(){ 

keys再次回到全体Item的key的成团的多少个array。
values(卡塔尔(قطر‎instance重回全部Item的value的集纳的二个array。
mergeinstanceotherHash: Hash object归拢给出的Hash,重临贰个新Hash。
toQueryString以QueryString那样的体制再次回到hash中装有的item,举例:
‘key1=value1&key2=value2&key3=value3’
inspect用少年老成种适于的点子展现hash中的key:value对。

    var empID=$F(‘lstEmployees’); 

The ObjectRange class

    var y=$F(‘lstYears’); 

继承自 Enumerable

    var url=”; 

用上、上边际描述二个指标区域。

    var pars=’empID=’+empID+’&year=’+y;     

Property

     

Type

    var myAjax=new Ajax.Request(url,{ 

Kind

        method:’get’,parameters:pars,onComplete:showResponse         

Description

    });     

startinstance

range的上面界

function showResponse(originalRequest) 

endinstancerange的顶上部分界exclusiveBooleaninstance决定边界自己是还是不是range的生龙活虎有个别。

Method

    //put returned XML in the textarea  

Kind

    $(‘result’).value = originalRequest.responseText;  

Arguments

}  

Description

</script> 

[ctor](start, end, exclusive卡塔尔国constructorstart: the lower bound, end:
the upper bound, exclusive: include the bounds in the
range?创设贰个range对象,从start生成到end,这里要潜心的是,start和end必段项目大器晚成致,何况该品种要有succ(卡塔尔国方法。
includeinstancesearchedValue: value that we are looking
for检查四个value是还是不是在range中。

<select id=”lstEmployees” size=”10″ onchange=”searchSales()”>  

The Class object

    <option value=”5″>Buchanan, Steven</option>  

在这里个程序包中 Class 对象在宣称其余的类时候被用到
。用那么些指标申明类使得新类接济 initialize() 方法,他起布局方法的效果。

    <option value=”8″>Callahan, Laura</option>  

看上边包车型大巴例子

    <option value=”1″>Davolio, Nancy</option> 

//declaring the classvar MySampleClass = Class.create();//defining the
rest of the class implmentationMySampleClass.prototype = { initialize:
function {this.message = message; }, showMessage: function { alert; }};
//now, let’s instantiate and use one objectvar myTalker = new
MySampleClass;myTalker.showMessage(); //displays alert

</select> 

Method

<select id=”lstYears” size=”3″ onchange=”searchSales()”> 

Kind

    <option selected=”selected” value=”1996″>1996</option> 

Arguments

    <option value=”1997″>1997</option> 

Description

    <option value=”1998″>1998</option> 

createinstance定义新类的布局方法。

</select> 

The Ajax object

<br> 

本条指标被当作其余提供AJAX功用的类的根对象。

<textarea id=result cols=60 rows=10 ></textarea>

Property

你注意到传播 Ajax.Request构造方法的第叁个目的了啊? 参数{method: ‘get’,
parameters: pars, onComplete: showResponse}
表示二个佚名对象的不追求虚名写法。他表示您传入的那些目的有三个名叫 method 值为
‘get’的性质,另三个属性名叫 parameters
包罗HTTP诉求的查询字符串,和贰个onComplete
属性/方法包涵函数showResponse。 

Type

再有局地别样的性情能够在这里个目的里面定义和装置,如
asynchronous,可感觉true 或 false
来调节AJAX对服务器的调用是或不是是异步的(暗中认可值是 true)。

Kind

其大器晚成参数定义AJAX调用的选项。在大家的例证中,在第三个参数通过HTTP
GET命令央求那多少个url,传入了变量 pars包涵的查询字符串, Ajax.Request
对象在它完毕接纳响应的时候将调用showResponse 方法。

Description

恐怕你知道,
XMLHttpRequest在HTTP央求时期将报告进程处境。这么些速度被描述为五个不等品级:Loading,
Loaded, Interactive, 或 Complete。你能够使 Ajax.Request
对象在此外等第调用自定义方法 ,Complete
是最常用的二个。想调用自定义的措施只须要轻松的在伸手的选项参数中的名为onXXXXX 属性/方法中提供自定义的不二秘诀对象。 就好像大家例子中的 onComplete
。你传入的方法将会被用三个参数调用,这些参数是 XMLHttpRequest
对象自个儿。你将会用那一个目的去得到再次来到的数目同一时候大概检查包蕴有在这里次调用中的HTTP结果代码的
status 属性。

activeRequestCountNumberinstance正在管理中的Ajax诉求的个数。

还会有其余五个有效的选项用来处理结果。大家得以在onSuccess
选项处传入五个方法,当AJAX正确的执行完后调用,
相反的,也得以在onFailure选项处传入四个办法,当服务器端现身错误时调用。正如onXXXXX
选项传入的方法风姿洒脱致,那五个在被调用的时候也不翼而飞三个包括AJAX央求的XMLHttpRequest对象。

Method

我们的事例未有用其它风趣的不二秘籍管理那个 XML响应,
大家只是把这段XML放进了三个文本域里面。对那些响应的四个首屈一指的应用很也许就是找到此中的想要的新闻,然后更新页面中的有个别因素,
或然以致大概做一些XSLT转变而在页面中产生部分HTML。

Kind

 在1.4.0版本中,大器晚成种新的风云回传外轮理货公司被引进。即使您有生龙活虎段代码总是要为贰个分裂平日的平地风波实践,而任由是哪个AJAX调用引发它,那么你能够动用新的Ajax.Responders对象。

Arguments

生龙活虎经你想要在三个 AJAX
调用正在运行时,彰显一些升迁效果,像三个穿梭转动的Logo之类的,你还行三个全局事件
Handler 来产生,在那之中叁个在第
一个调用初始时显示Logo,另八个在最终叁个调用完毕时隐敝Logo。看下边包车型大巴例证。

Description

<script> 

getTransport(卡塔尔(قطر‎instance再次来到新的XMLHttpRequest 对象。

var myGlobalHandlers = { 

The Ajax.Responders object

onCreate: function(){ 

继承自 Enumerable

Element.show(‘systemWorking’); 

以此指标保险贰个在Ajax相关事件发生时将被调用的指标的列表。比如,你要安装一个大局钩子来管理Ajax操作极其,那么您就能够动用那一个目的。

}, 

Property

onComplete: function() { 

Type

if(Ajax.activeRequestCount == 0){ 

Kind

Element.hide(‘systemWorking’); 

Description

respondersArrayinstance被注册到Ajax事件通报的靶子列表。

Method

}; 

Kind

Ajax.Responders.register(myGlobalHandlers); 

Arguments

</script> 

Description

<div id=’systemWorking’><img
src=’spinner.gif’>Loading…</div> 

registerinstanceresponderToAdd: object with methods that will be
called.被盛传参数的靶子应包罗名如Ajax事件的多如牛毛措施(如onCreate,onComplete,onException)。通讯事件引发全部被注册的指标的适当名称的函数被调用。
unregisterinstanceresponderToRemove: object to be removed from the
list.从列表中移除。 dispatch(callback, request, transport,
jsonState of Qatarinstancecallback: name of the AJAX event being reported, request:
the Ajax.Request object responsible for the event, transport: the
XMLHttpRequest object that carried the AJAX call, json: the X-JSON
header of the response
遍历被登记的靶子列表,寻找有由callback参数决定的不胜函数的对象。然后向这一个函数字传送递其余的八个参数,假设Ajax响应中蕴藏一个含有JSON内容的X-JSON
HTTP头,那么它会被热行并传到json参数。假使事件是onException,那么transport参数会被丰裕代替,json不会传递。

更完全的分解,请参谋 Ajax.Request 参照他事他说加以考察 和 Ajax选项参照他事他说加以考查。

The Ajax.Base class

3.2 使用Ajax.Updater类

那一个类是此外在Ajax对象中定义的类的基类。

设若您的服务器的另大器晚成端再次回到的音讯已然是HTML了,那么使用那么些顺序包中
Ajax.Updater
类将令你的生存变得尤其得轻易。用它你只需提供哪叁个因素必要被AJAX乞请重返的HTML填充就可以了,例子比作者写表明的更明白。 

Method

<script> 

Kind

function getHTML() 

Arguments

Description

var url = ”; 

setOptionsinstanceoptions: AJAX
options设定AJAX操作想要的选项。responseIsSuccess重回 true
倘诺AJAX操作成功,不然为 false 。responseIsFailure与
responseIsSuccess() 相反。

var pars = ‘someParameter=ABC’; 

The Ajax.Request class

 

继承自 Ajax.Base

var myAjax = new Ajax.Updater( 

封装 AJAX 操作

‘placeholder’, 

Property

url, 

Type

Kind

method: ‘get’, 

Description

parameters: pars 

伊芙ntsArraystatic在AJAX操作中兼有非常的大可能报告的事件/状态的列表。那些列表包含:
'Uninitialized', 'Loading', 'Loaded', 'Interactive',
'Complete'。transportXMLHttpRequestinstance承载AJAX操作的
XMLHttpRequest 对象。urlstringinstance请求的URL。

}); 

Method

 

Kind

Arguments

</script> 

Description

<input type=button value=GetHtml onclick=”getHTML()”> 

[ctor]constructorurl: the url to be fetched, options: AJAX
options创设那一个目的的一个实例,它将在加以的选项下诉求url。onCreate事件在调用constructor事被激起。
重要: 借使选择的url受到浏览器的平安设置,他会或多或少功用也不起。
相当多情况下,浏览器不会呈请与当下页面差异主机的url。
你最佳只利用本地url来幸免节制用户配置他们的浏览器instance那几个措施显著不会被表面调用。它在Ajax响应中满含X-JSONHTTP头时用来内部调用实施那些内容。evalReponse那也方法料定不会被表面调用,纵然Ajax响应含有贰个值为text/javascript的Cotent-Type头,那么那么些办法就用被调用试行响应体。headerinstancename:
HTTP header
name援引Ajax响应的头的开始和结果,在Ajax访谈停止后再调用那些主意。onStateChange那些措施平常不会被外表调用。
当AJAX需要状态改换的时候被那几个指标自身调用。requestinstanceurl: url for
the AJAX
call这几个情势日常不会被表面调用。已经在结构方法中调用了。respondToReadyStateinstancereadyState:
state number 这些法子日常不会被外表调用。
当AJAX央求状态退换的时候被那些指标本人调用。setRequestHeaders这一个点子平常不会被外表调用。
被这几个指标本人调用来安顿在HTTP诉求要发送的HTTP报头。

<div id=”placeholder”></div> 

The options argument object

您能够看到,这段代码比前面包车型地铁例证特别简洁,不满含 onComplete
方法,然而在结构方法中传来了七个要素id。
大家来稍微修正一下代码来描述如何在客商端管理服务器段错误成为或然。

An important part of the AJAX operations is the options argument.
There’s no options class per se. Any object can be passed, as long as it
has the expected properties. It is common to create anonymous objects
just for the AJAX calls.

大家将参预更加多的选项, 钦点管理错误的叁个措施。那一个是用 onFailure
选项来成功的。大家也钦点了一个 placeholder
独有在中标乞求之后才会被填充。为了达成这些指标大家改善了第二个参数从二个粗略的要素id到一个分包多个性子的靶子,
success (一切OK的时候被用到卡塔尔(قطر‎ 和 failure (有地点出标题标时候被用到卡塔尔(قطر‎在下边包车型大巴例子中从不用到failure属性,而仅仅在 onFailure 处使用了
reportError 方法。

Property

<script> 

Type

function getHTML() 

Default

Description

var url = ”; 

methodString’post’HTTP
哀告方式。parametersString”在HTTP央浼中传出的url格式的值列表。asynchronousBooleantrue内定是不是做异步
AJAX 诉求。postBodyStringundefined在HTTP
POST的气象下,传入央求体中的内容。requestHeadersArrayundefined和央求一同被流传的HTTP底部列表,
那一个列表必需富含偶数个品类, 任何奇数项目是自定义的尾部的名目,
接下来的偶数项目使那个尾部项指标字符串值。
例子:['my-header1', 'this is the value', 'my-other-header', 'another value']
onXXXXXXXXFunction(XMLHttpRequest,
Object卡塔尔undefined在AJAX哀求中,当相应的平地风波/状态产生的时候调用的自定义方法。
举个例子
var myOpts = {onComplete: showResponse, onLoaded: registerLoaded};.
那些方式将被传播多少个参数, 那几个参数是承载AJAX操作的 XMLHttpRequest
对象,另一个是包括被推行X-JSON响应HTTP头。onSuccessFunction(XMLHttpRequest,
Object卡塔尔undefined当AJAX央求成功完结的时候调用的自定义方法。
这些艺术将被传到一个参数, 那些参数是承载AJAX操作的 XMLHttpRequest
对象,另三个是带有被实施X-JSON响应HTTP头。onFailureFunction(XMLHttpRequest,
Object卡塔尔国undefined当AJAX哀告达成但现身错误的时候调用的自定义方法。那一个格局将被流传三个参数,
那么些参数是承载AJAX操作的 XMLHttpRequest
对象,另三个是包蕴被实践X-JSON响应HTTP头。onExceptionFunction(Ajax.Request,
exception卡塔尔(قطر‎undefined当四个在客商端推行的Ajax暴发像空头响应或无效参数那样的非凡意况时被调用的自定义函数。它选拔多少个参数,包涵至极Ajax操作的Ajax.Request对象和特别对象。insertionan
Insertion classundefined三个能调整哪些插入新内容的类,能
Insertion.Before, Insertion.Top, Insertion.Bottom,或 Insertion.After.
只好接纳于Ajax.Updater 对象. evalScriptsBooleanundefined,
false决定当响应达到的时候是否实施当中的脚本块,只在 Ajax.Updater
对象中动用。decayNumberundefined,
1决定当最终二遍响应和前三回响应相同一时间在 Ajax.PeriodicalUpdater
对象中的减漫访谈的次数, 举个例子,要是设为2,后来的刷新和前边的结果豆蔻梢头致,
那个目的将静观其变2个设定的时辰间距实行下一遍刷新, 假诺又一遍同样,
那么将等待4次,等等。
不设定这些只,大概安装为1,将幸免访谈频率变慢。frequencyNumberundefined,
2用秒表示的刷新间的间隔,只好使用于 Ajax.PeriodicalUpdater 对象。

var pars = ‘someParameter=ABC’; 

The Ajax.Updater class

 

继承自 Ajax.Request

 

当呼吁的url重回意气风发段HTML而你想把它直接放置到页面中三个一定的因素的时候被用到。
若是url的回来“

 

的块何况想在收受届时就施行它的时候也足以接收该目的。含有脚本的时候利用
evalScripts 选项。

var myAjax = new Ajax.Updater( 

Property

{success: ‘placeholder’}, 

Type

url, 

Kind

Description

method: ‘get’, 

containersObjectinstance那几个目的包括八个属性:AJAX诉求成功执行的时候用到
containers.success , 不然的话用到 containers.failure

parameters: pars, 

Method

onFailure: reportError 

Kind

}); 

Arguments

 

Description

[ctor](container, url, options)constructorcontainer:this can be the id
of an element, the element object itself, or an object with two
properties – object.success element that will be used when the AJAX
call succeeds, and object.failure element that will be used
otherwise. url: the url to be fetched, options: AJAX
options创制贰个用给定的挑精拣肥乞请给定的url的一个实例。updateContent(卡塔尔国instance那一个方法平日不会被外表调用。
当响应达到的时候,被那些目的本人调用。
它会用HTML更新适当的要素恐怕调用在 insertion
选项中传播的秘诀-那几个方法将被盛传三个参数, 被更新的要素和响应文件。

function reportError(request) 

The Ajax.PeriodicalUpdater class

继承自Ajax.Base

alert(‘Sorry. There was an error.’); 

那么些类重复生成并行使 Ajax.Updater对象来刷新页面中的一个成分。也许进行Ajax.Updater 能够执行的别样职责。更加多音信参谋 Ajax.Updater 参谋 。

Property

</script> 

Type

<input type=button value=GetHtml onclick=”getHTML()”> 

Kind

<div id=”placeholder”></div> 

Description

假设您的服务器逻辑是及其HTML 标志重回JavaScript 代码,
Ajax.Updater对象足以实施这段JavaScript代码。为了使那一个指标对比响应该为JavaScript,你只需在结尾参数的对象布局方法中轻巧插足evalScripts:
true属性。不过值得说醒的是,像那一个选项名evalScripts暗暗提示的,这么些脚本会被实行,可是它们不会被出席到Page的剧本中。“有哪些分别?”,大概您会这么问。大家假诺须要地址重返的东东像那样:

containerObjectinstance那么些值将平素传入Ajax.Updater的布局方法。urlStringinstance那几个值将直接传入Ajax.Updater的布局方法。frequencyNumberinstance五次刷新之间的间隔,以秒为单位。 暗许2秒。 This 当调用 Ajax.Updater
对象的时候,这些数将和最近的 decay 相乘。
decayNumberinstance重负施行义务的时候保持的式微水平。updaterAjax.Updaterinstance最终一遍采取的
Ajax.Updater目的timerObjectinstance通告对象该下一回立异时用到的JavaScript
测量时间的装置。

<script language=”javascript” type=”text/javascript”> 

Method

function sayHi(){ 

Kind

alert(‘Hi’); 

Arguments

Description

</script> 

[ctor](container, url, options卡塔尔(قطر‎constructorcontainer:this can be the id
of an element, the element object itself, or an object with two
properties – object.success element that will be used when the AJAX call
succeeds, and object.failure element that will be used otherwise. url:
the url to be fetched, options: AJAX
options成立三个用给定的选用央求给定的url的三个实例。start(卡塔尔(قطر‎instance那个主意经常不会被外表调用。
对象为了开端周期性实施职分的时候调用的法子。
stop使对象甘休实践周期职务。停止后,借使有onComplete选项,那么吸引callback。
updateComplete这一个法子通常不会被外表调用。 被眼下的
Ajax.Updater使用,当三回号令停止的时候,它被当做安顿下三遍呼吁。
onTimerEvent那几个办法平时不会被外表调用。当到下一次创新时被中间调用。

<input type=button value=”Click Me” onclick=”sayHi()”> 

The Element object

若果你从前那样尝试过,你领会这个本子不会如您所期望的那样行事,原因是这段脚本会被执行,但像下边那样的台本施行并不会创制叁个称为sayHi的函数,它怎么着也不做。若是要开创八个函数,我们理应把代码改成上面那个样子:

那一个指标提供在操作DOM凉月素时接受的成效性方法。

<script language=”javascript” type=”text/javascript”> 

Method

sayHi = function(){ 

Kind

alert(‘Hi’); 

Arguments

}; 

Description

</script> 

addClassNameinstanceelement: element object or id, className: name of a
CSS
class将付出的className增加到对象的className属性中。classNamesinstanceelement:
element object or id重返二个Element.ClassName的靶子表示CSS
给出对象有的class names。cleanWhitespaceinstanceelement: element object
or id杀绝对象子成分中有所空白的text node。emptyinstanceelement: element
object or
id重回七个布尔值提醒对象为空或独有空白字符。getDimensionsinstanceelement:
element object or id重返对象的尺码,再次回到值有多少个属性,height和width。
getHeightinstanceelement: element object or id再次来到成分的 offsetHeight
。getStyleinstanceelement: element object or id, cssProperty name of a
CSS property (either format ‘prop-name’ or ‘propName’
worksState of Qatar.重返给定对象的CSS属性值或还未点名cssProperty时再次来到null。hasClassNameinstanceelement:
element object or id, className: name of a CSS class重返 true
假设成分的类名中包罗给定的类名hide(elem1 [, elem2 [, elem3
[…]]]卡塔尔(قطر‎instanceelemN: element object or id通过设定style.display
'none'来掩藏各样传入的因素。 makeClippinginstanceelement: element
object or
id能过设定overflow的值设定内容溢出剪辑。makePositionedinstanceelement:
element object or
id改革对象的style.position为’relative’。removeinstanceelement: element
object or
id从document对象中除去内定的因素。removeClassNameinstanceelement:
element object or id, className: name of a CSS
class从要素的类名中删去给定的类名。scrollToinstanceelement: element
object or id滚动window到目的的职责。setStyle(element,
cssPropertyHash卡塔尔(قطر‎instanceelement: element object or id, cssPropertyHash
Hash object with the styles to be
applied.依据cssPropertyHash参数给目的设置CSS属性值。show(elem1 [, elem2
[, elem3 […]]]卡塔尔(قطر‎instanceelemN: element object or id用设定它的
style.display''来显示每种传入的因素。 toggle(elem1 [, elem2 [,
elem3 […]]]State of QatarinstanceelemN: element object or
id切换每二个传开元素的可视性。undoClippinginstanceelement: element
object or
idstyle.overflow的值再次回到上二个设定值。undoPositionedinstanceelement:
element object or id清除对象的 style.position 为
”updateinstanceelement: element object or id, html: html
content用给出的HTML参数替换对象的innerHTML,假如HTML参数中富含

<input type=button value=”Click Me” onclick=”sayHi()”>

将把 HTML 变为
Hello, Chief Wiggum. How's it going?

怎么大家在地方的代码中不接收var关键字来声称那些变量呢(指sayHi
),因为那样做成立出来的函数将只是前段时间脚本块的二个有的变量(最少在IE中是如此)。不写var关键字,成立出来的对象的效率域正是大家所期望的window。

The Insertion.Top class

更多相关知识,请参见  Ajax.Updater reference 和options reference. 

继承自 Abstract.Insertion

四:枚举

在给定元素第三个子节点地方插入 HTML。内容将坐落于成分的开头标识的紧后边。

您知道,大家都是如此来做巡回的,建七个Array,用elements组织它们,再建三个生生不息结构(比方for,foreach,while卡塔尔(قطر‎通过index数字来访谈每三个element,再用这些element做一些动作。 

Method

当您想到当时,你会开采差不离每回写循环代码你都会迟早用到贰个Array。那么,假设Array对象能够提供越来越多的功效给它们的迭代器使用不是很爽吗?确实是那般,事实上非常多的编制程序语言都在它们的Array或其余近似的布局中(如Collections,Lists)提供部分这么的效用。 

Kind

于今好了,prototype.js了给大家二个Enumerable对象,它完结了广大和可迭代数据开展相互影响的三昧。和原始的JS对象比较prototype.js更上生龙活虎层楼,它对Array
类s扩张了装有枚举要用的函数。 

Arguments

4.1循环, Ruby样式的

Description

在职业的javascript中,假让你想把三个array中的所有elements突显出来,你能够像上面代码那样写得很好:

[ctor]constructorelement: element object or id, content: HTML to be
inserted世襲自Abstract.Insertion. 创设叁个得以扶植插入动态内容的对象。

<script> 

下面的代码
Hello, Wiggum. How's it going? new Insertion.Top; 

将把 HTML 变为
Hello, Mr. Wiggum. How's it going?

function showList(){ 

The Insertion.Bottom class

var simpsons = [‘Homer’, ‘Marge’, ‘Lisa’, ‘Bart’, ‘Meg’]; 

Inherits from Abstract.Insertion

            for(i=0;i<simpsons.length;i++){ 

在给定成分最后叁个子节点地方插入
HTML。内容将放在成分的截至标识的紧前面。

alert(simpsons[i]); 

Method

Kind

Arguments

</script> 

Description

<input type=”button” value=”Show List” onclick=”showList();” > 

[ctor]constructorelement: element object or id, content: HTML to be
insertedInherited from Abstract.Insertion. Creates an object that will
help with dynamic content insertion.

利用大家新的最佳的仇人,prototype.js,大家得以把它生写成这么

The following code

function showList(){ 

Hello, Wiggum. How's it going? new Insertion.Bottom('person', " What's up?"); 

var simpsons = [‘Homer’, ‘Marge’, ‘Lisa’, ‘Bart’, ‘Meg’]; 

Will change the HTML to

            simpsons.each( function(familyMember){ 

Hello, Wiggum. How's it going? What's up?

alert(familyMember); 

The Insertion.After class

}); 

Inherits from Abstract.Insertion

在给定成分甘休标志的后面插入HTML。

你可能会想“非常想获得的法子…相对旧的,这种语法太离奇了”。哦,在上边的事例,确实什么也一贯不,在这里个大约得要死例子中,也从没校勘太多啊,就算如此,请继续读下来。 

Method

在一连下边内容前边,你注意到特别被做为二个参数字传送递给each函数的函数?大家把它领会成迭代器函数。 

Kind

4.2 Your arrays on steroids

Arguments

犹如作者辈地点提到的,把您的Array中的elements当成相仿的花色应用近似的属性和函数是很通用(Common,不知该翻译成通用照旧庸俗)的。让大家看看怎样利用大家新的劲头刚劲的Arrays的迭代成效吗。
遵照规范找到叁个element。 

Description

<script> 

[ctor]constructorelement: element object or id, content: HTML to be
insertedInherited from Abstract.Insertion. Creates an object that will
help with dynamic content insertion.

function findEmployeeById(emp_id){ 

The following code

var listBox = $(‘lstEmployees’) 

Hello, Wiggum. How's it going? new Insertion.After('person', ' Are you there?'); 

var options = listBox.getElementsByTagName(‘option’); 

Will change the HTML to

options = $A(options); 

Hello, Wiggum. How's it going? Are you there?

var opt = options.find( function(employee){ 

The Field object

return (employee.value == emp_id); 

这几个指标提供操作表单中的输入项指标功效性方法。

}); 

Method

alert(opt.innerHTML); //displays the employee name 

Kind

Arguments

</script> 

Description

<select id=”lstEmployees” size=”10″ > 

clear(field1 [, field2 [, field3 […]]]卡塔尔国instance田野同志N: 田野element object or id 扫除传入表单中项目成分的值。present(田野(field卡塔尔1 [,
field2 [, field3 […]]]卡塔尔instance田野N: 田野先生 element object or id
唯有在具有的表单项目都不为空时再次来到 true 。focusinstance田野(field卡塔尔: 田野同志element object or id移动宗旨到给定的表单项目。selectinstance田野(field卡塔尔(قطر‎: 田野element object or
id接纳援救项目值选取的表单项指标值。activateinstance田野先生: 田野先生 element
object or id移动宗旨並且选取帮衬项目值选取的表单项指标值。

<option value=”5″>Buchanan, Steven</option> 

The Form object

<option value=”8″>Callahan, Laura</option> 

本条指标提供操作表单和她俩的输入成分的作用性方法。

<option value=”1″>Davolio, Nancy</option> 

Method

</select> 

Kind

<input type=”button” value=”Find Laura”
onclick=”findEmployeeById(8);” > 

Arguments

当今我们再下黄金时代城,看看怎样过滤多个Array中的成分,从每一种成分中获得大家想要的分子。 

Description

<script> 

serializeinstanceform: form element object or
id再次回到url参数格式的档期的顺序名和值的列表,
'field1=value1&field2=value2&field3=value3'。findFirstElementinstanceform:
form element object or
id再次来到Form中首先个Enable的对象。getElementsinstanceform: form element
object or id重返包罗全体在表单中输入项目标 Array 对象。getInputs(form
[, typeName [, name]]卡塔尔(قطر‎instanceform: form element object or id,
typeName: the type of the input element, name: the name of the input
element.重临八个 Array 包罗全数在表单中的 元素。 此外,
那一个列表能够对成分的花色或名字属性进行过滤。disableinstanceform: form
element object or id使表单中的全部输入项目无效。enableinstanceform: form
element object or
id使表单中的全部输入项目使得。focusFirstElementinstanceform: form
element object or
id激活第三个表单中可视的,有效的输入项目。resetinstanceform: form
element object or id重新设置表单。和调用表单对象的 reset() 方法相符。

function showLocalLinks(paragraph){ 

The Form.Element object

paragraph = $(paragraph); 

这么些目的提供表单对象中的可视和非可视成分的作用性方法。

var links = $A(paragraph.getElementsByTagName(‘a’)); 

Method

//find links that do not start with ‘http’ 

Kind

var localLinks = links.findAll( function(link){ 

Arguments

var start = link.href.substring(0,4); 

Description

return start !=’http’; 

serializeinstanceelement: element object or id再次来到成分的 名称=值 对, 如
'elementName=elementValue'。getValueinstanceelement: element object or
id重临成分的值。

}); 

The Form.Element.Serializers object

//now the link texts 

以此目的提供了里面使用的用来援救深入深入分析出表单成分的日前值的一些有效的章程。

var texts = localLinks.pluck(‘innerHTML’); 

Method

//get them in a single string 

Kind

var result = texts.inspect(); 

Arguments

alert(result); 

Description

inputSelectorinstanceelement: object or id of a form element that has
the checked property, like a radio button or
checkbox.重临带有元素名称和值的 Array , 如
['elementName', 'elementValue']textareainstanceelement: object or id
of a form element that has the value property, like a textbox, button
or password 田野同志.再次回到带有成分名称和值的 Array , 如
['elementName', 'elementValue']selectinstanceelement: object of a
element重临带有成分名称和富有被筛选的抉择的值或文本的 Array , 如
['elementName', 'selOpt1 selOpt4 selOpt9']

</script> 

The Abstract.TimedObserver class

<p id=”someText”> 

其黄金时代类是用来其余监听五个要素的值变化的类的基类,那个类像贰个抽象类一样被选用。

This <a href=”; has 

子类能够被创建来监听如输入项目值,或style属性,或表格的行数,只怕其余任何对追踪变化有关的东西。

a <a href=”#localAnchor”>lot</a> of 

子类必得达成这么些法子来支配哪些才是被监听的要素的脚下值。

<a href=”#otherAnchor”>links</a>. Some are 

Method

<a href=”; 

Kind

and some are <a href=”#someAnchor”>local</a> 

Arguments

</p> 

Description

<input type=button value=”Find Local Links”
onclick=”showLocalLinks(‘someText’)”> 

[ctor](element, frequency, callback卡塔尔constructorelement: element object
or id, frequency: interval in seconds, callback: function to be called
when the element changes创建二个监听成分的对象。getValue(卡塔尔(قطر‎instance,
abstract子类必需完结这么些点子以瘊定什么那个成分被监视的当前值。registerCallback(卡塔尔instance这几个主意经常不会被外表调用。
被那些目的本人调用来伊始监听那些成分。
onTimerEvent这么些情势平常不会被外表调用。
被那个目的自个儿调用来周期性的检讨那些成分。

上边的代码仅仅是一些纤维的进行令人爱上这种语法。请参见
Enumerable和Array的有所函数

Property

五:prototype.js参考

Type

5.1 JavaScript类扩展

Description

prototype.js 类库完结强大功能的生龙活虎种渠道是扩张已部分JavaScript 类。 

elementObject被监听的成分对象。frequencyNumber每趟检查中的以秒为单位的岁月间距。callbackFunction只要成分改过那个点子就能够被调用。
会选取到成分对象和新值作为参数。lastValueString成分被核算的最后二个值。

5.1.1 对 Object的扩展

The Form.Element.Observer class

Method

继承自 Abstract.TimedObserver

Kind

Abstract.TimedObserver
的三个贯彻类用来监听表单输入项指标值的变型。当您想监听二个并未有带报告值变化事件的要素的时候使用那么些类。不然的话使用
Form.Element.EventObserver 类代替。

Arguments

Method

Description

Kind

extend(destination, source)

Arguments

static

Description

destination: any object, source: any object

[ctor](element, frequency, callback)constructorelement: element object
or id, frequency: interval in seconds, callback: function to be called
when the element changes继承自 Abstract.TimedObserver.
创制一个监听成分值属性的靶子。getValue(卡塔尔(قطر‎instance重回成分的值。

提供大器晚成种通过拷贝全数源以象属性和函数到目的函数达成持续的章程

The Form.Observer class

inspect(targetObj)

继承自 Abstract.TimedObserver

static

Abstract.TimedObserver
的五个兑现类用来监听表单中别的数据项的值的变化。当您想监听二个从没有过带报告值变化事件的要素的时候使用那么些类。
不然的话使用类Form.EventObserver 代替。

targetObj: any object

Method

回来可读性好关于指标对象的文字描述,假诺指标实例未有概念三个inspect函数,暗中认可重回toString函数的值。

Kind

5.1.2 对Number的扩展

Arguments

Method

Description

Kind

[ctor](form, frequency, callback)constructorform: form object or id,
frequency: interval in seconds, callback function to be called when any
data entry element in the form changes继承自 Abstract.TimedObserver.
成立一个监听表单变化的对象。getValue(State of Qatarinstance重回全部表单数据的意气风发种类值。

Arguments

The Abstract.EventObserver class

Description

以此类被作为别的一些类的基类,那些类具有在三个因素的值改换事件爆发的时候实践叁个回调方法这么的意义。

toColorPart()


Abstract.EventObserver 的多个对象可以绑定到一个元素上,不是一个帮其他的擦出了,而是按照他们付给元素的顺序执行这些回调方法。

instance

单选按键和复选框的触及事件是 onclick
,而文本框和下拉列表框/下拉列表框的是 onchange

(none)

Method

回到数字的十七进制表示方式。在把三个翼虎GB数字调换来HTML表现方式时很有用。

Kind

succ()

Arguments

instance

Description

(none)

[ctor]constructorelement: element object or id, callback: function to
be called when the event
happens创设监听成分的指标。getValue(卡塔尔国instance,abstract子类必需兑现那几个方法以瘊定什么那么些因素被监视的当下值。registerCallback那几个法子通常不会被表面调用。
被对象调用来把温馨绑定到成分的平地风波上。
registerFormCallbacks这一个主意平时不会被表面调用。
被对象调用来把自身绑定到表单中的每多个数目项成分的平地风波上。
onElement伊夫nt这一个艺术平日不会被外表调用。 将被绑定到成分的事件上。

 再次来到下三个数字,那几个艺术可用来迭代调用项景中。 

Property

times(iterator)

Type

instance

Description

iterator: a function object conforming to Function(index)

elementObject被监听的成分对象。callbackFunction只要成分改进就调用的办法。会吸收接纳到成分对象和新值作为参数。lastValueString成分被核准的最终二个值。

Calls the iterator function repeatedly passing the current index in the
index argument.
反复调用iterator函数并传递当前index到iterator的index参数。 

The Form.Element.EventObserver class

下边包车型客车事例用提醒框展现0-9。 

继承自 Abstract.EventObserver

<script> 

Abstract.EventObserver
的一个达成类,它在监测到表单中数据项成分的值更换的附和事件时候实践一个回调方法。
假诺成分未有其它报告生成的风云,那么您能够运用 Form.Element.Observer
类代替。

function demoTimes(){ 

Method

var n = 10; 

Kind

n.times(function(index){ 

Arguments

alert(index); 

Description

}); 

[ctor]constructorelement: element object or id, callback: function to
be called when the event happens继承自 Abstract.EventObserver
创造一个监听成分值属性的对象。getValue(卡塔尔国instance重返成分的值。

/*************************** 

The Form.EventObserver class

* you could have also used: 

继承自 Abstract.EventObserver

*           (10).times( …. ); 

Abstract.EventObserver
的二个实现类,监听表单对象中隐含的任何对象的任何改换,用成分的事件检测值的改动。即便成分未有其余报告生成的风云,
那么你能够使用Form.Observer 类代替。

***************************/ 

Method

Kind

</script> 

Arguments

<input type=button value=”Test Number.times()”
onclick=”demoTimes()”> 

Description

5.1.3 对 Function扩展

[ctor]constructorform: form object or id, callback: function to be
called when any data entry element in the form changes继承自
Abstract.EventObserver
成立一个监听成分值属性的对象。getValue(State of Qatarinstance重临全部表单数据的意气风发种类值。

Method

Position 对象

Kind

那几个目的提供多数和因素地方相关的措施。

Arguments

Method

Description

Kind

bind(object)

Arguments

instance

Description

object: the object that owns the method

prepare()instance调整 deltaXdeltaY
属性来和谐在滚动地点中的变化。
记得在页面滚动之后的别样调用的withinIncludingScrolloffset
以前调用那么些方法。realOffsetinstanceelement:
object重临这一个成分的正确性滚动偏差的 Array 对象,
满含具有影响因素的轮转偏差。结果数组相通
[total_scroll_left, total_scroll_top]cumulativeOffsetinstanceelement:
object回那么些因素的精确性滚动偏差的 Array 对象,
包罗别的被停放的父成分强加偏差。结果数组类似
[total_offset_left, total_offset_top]withininstanceelement: object, x
and y: coordinates of a
point测验给定的点的坐标是或不是在加以的因素的表面矩形范围之内。withinIncludingScrolloffsetsinstanceelement:
object, x and y: coordinates of a
point测量检验给定的点的坐标是或不是在加以的成分的表面矩形范围之内。overlapinstancemode:
‘vertical’ or ‘horizontal’, element:
object在调用这些艺术此前必要调用within()
。那几个点子再次回到0.0到1.0里头的数字,来表示坐标在要素重叠的分数。
举个例证,假使元素是一个边长是100px的正方形的DIV,何况位居, 然后
within;``overlap('vertical', divSquare);会回到
0.10,意思是卓殊点位于DIV最上端边框以下 十分之一 的职位上。
cloneinstancesource: element object or id, target: element object or
id改换目的成分的朗朗上口尺寸和岗位与源成分的同意气风发。

归来function的实例,这一个实例和源function的结构相像,可是它已被绑定给了参数中提供的object,正是说,function中的this指针指向参数object。

bindAsEventListener(object)

instance

object: the object that owns the method

用法和方面包车型地铁bind同样,区别在于用来绑定事件。

让大家看看怎么着使用那么些扩展。 

<input type=checkbox id=myChk value=1> Test? 

<script> 

//declaring the class 

var CheckboxWatcher = Class.create(); 

//defining the rest of the class implementation 

CheckboxWatcher.prototype = { 

initialize: function(chkBox, message) { 

this.chkBox = $(chkBox); 

this.message = message; 

//assigning our method to the event 

 

this.chkBox.onclick = 

this.showMessage.bindAsEventListener(this); 

 

}, 

showMessage: function(evt) { 

alert(this.message + ‘ (‘ + evt.type + ‘)’); 

}; 

var watcher = new CheckboxWatcher(‘myChk’, ‘Changed’); 

</script> 

5.1.4 对String的扩展

Method

Kind

Arguments

Description

stripTags()

instance

(none)

回去叁个把富有的HTML或XML标志都移除的字符串。

stripScripts()

instance

(none)

归来二个把装有的script都移除的字符串。

escapeHTML()

instance

(none)

回到三个把具备的HTML标识合适的转义掉的字符串。

unescapeHTML()

instance

(none)

escapeHTML()的反转。

extractScripts()

instance

(none)

回去多个蕴含在string中找到的富有<script>的数组。

evalScripts()

instance

(none)

试行在string中找到的有着<script>。

toQueryParams()

instance

(none)

把querystring分割才三个用parameter
name做index的一路Array,更像叁个hash。

parseQuery()

instance

(none)

和toQueryParams()一样.

toArray()

instance

(none)

把字符串调换来字符数组.

camelize()

instance

(none)

转变多个以连字符连接的字符串成一个骆驼法样式的字符串。举个例子,这一个函数在写代码时,把它做为二个体制工具使用是很有用的。

5.1.5 对  Array的扩展

因为array扩张于enumerable,所以全部enumberable对象的函数,array都以能够动用的,除此而外,下边包车型客车这么些也是早已贯彻了的。 

Method

Kind

Arguments

Description

clear()

instance

(none)

清空。

compact()

instance

(none)

回去贰个不包含源array中null或undefined成分的array,此格局不校正源array。

first()

instance

(none)

回来array的率先个对象。

flatten()

instance

(none)

经过递归组合array种种成分的子成分(倘使该因素也是array卡塔尔(قطر‎来回到一个“扁平的”黄金时代维的array。

indexOf(value)

instance

value: what you are looking for.

归来给出数字地点(从0算起)的要素,假诺在该职位未有找到对象,再次回到-1。 

inspect()

instance

(none)

重载inspect(卡塔尔国,重临更加好格式的反映Array每一个成分的字符描述。

last()

instance

(none)

回去最后三个因素。

reverse([applyToSelf])

instance

applyToSelf: indicates if the array itself should also be reversed.

 反转Array瓜月素的顺序,若无付诸参数,或参数为true,则源Array中元素的相继也反转,不然源Array保持不改变。 

shift()

instance

(none)

回来Array的第一个因素并从Array中移除它,Array的Length-1。

without(value1 [, value2 [, .. valueN]])

instance

value1 … valueN: values to be excluded if present in the array.

 再次来到多个把参数列表中蕴藏的要素从源Array中撤除的Array。 

5.2 document DOM扩展

Method

Kind

Arguments

Description

getElementsByClassName(className [, parentElement])

instance

className: name of a CSS class associated with the elements,
parentElement: object or id of the element that contains the elements
being retrieved.

归来全数CSS
className属性等于className参数的元素,若无给出parentElement,那么将追寻document
body。(此处使用document.body作者以为比不上使用document,因为不常候有的页面未有body卡塔尔 

5.3 Event扩展

Property

Type

Description

KEY_BACKSPACE

NumberNumber

8: Constant. Code for the Backspace key.

KEY_TAB

Number

9: Constant. Code for the Tab key.

KEY_RETURN

Number

13: Constant. Code for the Return key.

KEY_ESC

Number

27: Constant. Code for the Esc key.

KEY_LEFT

Number

37: Constant. Code for the Left arrow key.

KEY_UP

Number

38: Constant. Code for the Up arrow key.

KEY_RIGHT

Number

39: Constant. Code for the Right arrow key.

KEY_DOWN

Number

40: Constant. Code for the Down arrow key.

KEY_DELETE

Number

46: Constant. Code for the Delete key.

永利皇宫463娱乐网址,observers:

Array

List of cached observers. Part of the internal implementation details of
the object.

Method

Kind

Arguments

Description

element(event)

static

event: an Event object

回来事件源对象。

isLeftClick(event)

static

event: an Event object

大器晚成旦点击了鼠标左键,重回true.

pointerX(event)

static

event: an Event object

回来鼠标的X座标。 

pointerY(event)

static

event: an Event object

回去鼠标的Y座标。

stop(event)

static

event: an Event object

接纳此函数来脚刹踏板事件的暗许行为并阻挠传递(冒泡卡塔尔(قطر‎。

findElement(event, tagName)

static

event: an Event object, tagName: name of the desired tag.

致力件源对象起首上扬寻找DOM树,直到找到第贰个符合tagName的要素

observe(element, name, observer, useCapture)

static

element: object or id, name: event name (like ‘click’, ‘load’, etc),
observer: function to handle the event, useCapture: if true, handles the
event in the capture phase and if false in the bubbling phase.

为目的的某部事件扩大二个管理函数。

stopObserving(element, name, observer, useCapture)

static

element: object or id, name: event name (like ‘click’), observer:
function that is handling the event, useCapture: if true handles the
event in the capture phase and if false in the bubbling phase.

和方面的函数相反。

_observeAndCache(element, name, observer, useCapture)

static

 

民用函数,别管它。

unloadCache()

static

(none)

村办函数,别管它。从内部存款和储蓄器中革除全数的observers缓存。

下边代码演示怎么样给window加多一个load事件管理函数。 

<script> 

Event.observe(window, ‘load’, showMessage, false); 

function showMessage() { 

alert(‘Page loaded.’); 

</script> 

5.4 在prototype.js中定义新的对象和类

另多个这几个程序包扶植你的地点正是提供成千上万既援救面向对象设计意见又有共通效用的重重对象。 

The PeriodicalExecuter object

其一目的提供一定间隔时间上海重机厂新调用多个方法的逻辑。 

Method

Kind

Arguments

Description

[ctor](callback, interval)

constructor

callback: a parameterless function, interval: number of seconds

始建这些指标的实例将会再也调用给定的秘籍。

Property

Type

Description

callback

Function()

被调用的艺术,该办法不可能流传参数。

frequency

Number

以秒为单位的间隔。

currentlyExecuting

Boolean

意味着这么些办法是或不是正在进行。

5.4.1 The Prototype object

Prototype 未有太重大的意义,只是申明了该程序包的版本 。 

Property

Type

Description

Version

String

版本。

emptyFunction

Function()

空函数。

K

Function(obj)

三个单单回传参数的函数。

ScriptFragment

String

鉴定区别script的正则式。

5.4.2 The Enumerable object

Enumberable对象能够已更文雅的点子完结对列表样式的组织实行枚举。 

好多别样的指标通过扩张自Enumberable对象来赢得这一个立见成效的接口。

Method

Kind

Arguments

Description

each(iterator)

instance

iterator: a function object conforming to Function(value, index)

把各种element做为第三个参数,element的index作为第三个参数调用iterator函数。

all([iterator])

instance

iterator: a function object conforming to Function(value, index)

这一个函数会用给出的iterator测量检验整个集结,要是集合中任一成分在iterator函数测量试验中回到false或null,那么这几个函数再次回到false,不然重临true。若无交到iterator,那么就能测验全体的因素是或不是不等于false和null。你可以轻便的把它充当是“检查测验每一个成分都为非空非负”。 

any(iterator)

instance

iterator: a function object conforming to Function(value, index),
optional.

那个函数会用给出的iterator测量检验整个会集,假诺集合中任一成分在iterator函数测量试验中回到true,那么那个函数再次来到true,不然重临false。若无交到iterator,那么就能够测验全数的因素是或不是有叁个不等于false和null。你能够总结的把它作为是“检查实验成分中是还是不是有非空非负的”。 

collect(iterator)

instance

iterator: a function object conforming to Function(value, index)

 调用iterator函数依照集合中每种成分再次来到三个结出,然后依据原本集合中的顺序,重临一个Array。 

detect(iterator)

instance

iterator: a function object conforming to Function(value, index)

会晤中每一种成分调用三回Iterator,重返第多个使Iterator重返True的成分,假使最后都未曾为true的调用,那么再次回到null。 

entries()

instance

(none)

等于toArray(). 

find(iterator)

instance

iterator: a function object conforming to Function(value, index)

等于 detect(). 

findAll(iterator)

instance

iterator: a function object conforming to Function(value, index)

聚拢中每一个成分调用Iterator,重临贰个由具备调用Iterator再次回到结果格外true的因素构成的数组。和reject(卡塔尔(قطر‎相反。 

grep(pattern [, iterator])

instance

pattern: a RegExp object used to match the elements, iterator: a
function object conforming to Function(value, index)

 用pattern参数正则表明式测量检验会集中的每一种元素,重临三个包罗全体相称正则式的因素的Array,即便给出了Iterator,那些每一个结果还要通过一下Iterator管理。 

include(obj)

instance

obj: any object

 决断集结中包不包涵钦定对象。 

inject(initialValue, iterator)

instance

initialValue: any object to be used as the initial value, iterator: a
function object conforming to Function(accumulator, value, index)

 用Iterator联接全数集结中的成分。Iterator在被调用时把上二次迭代的结果做为第贰个参数字传送给accumulator。第贰次迭代时,accurmelator等于initialValue,最后回到accumulator的值。 

invoke(methodName [, arg1 [, arg2 […]]])

instance

methodName: name of the method that will be called in each element,
arg1..argN: arguments that will be passed in the method invocation.

聚拢中的每种成分调用内定的函数(查看源代码能够窥见钦赐函数被调用时,this指针被传成当前因素),并传播给出的参数,重返调用结果组成的Array。 

map(iterator)

instance

iterator: a function object conforming to Function(value, index)

同collect(). 

max([iterator])

instance

iterator: a function object conforming to Function(value, index)

归来会集相月素的最大值,或调用Iterator后再次来到值的最大值(假诺给出了Iterator的话卡塔尔。 

member(obj)

instance

obj: any object

同 include(). 

min([iterator])

instance

iterator: a function object conforming to Function(value, index)

归来最小值,参见max(State of Qatar。 

partition([iterator])

instance

iterator: a function object conforming to Function(value, index)

再次回到叁个分包七个Array的Array,第一个Array包括全数调用Iterator再次回到True的因素,第一个Array包罗剩下的要素。假诺Iterator未有交给,那么就根据成分本人剖断。 

pluck(propertyName)

instance

propertyName name of the property that will be read from each element.
This can also contain the index of the element

归来每种成分的钦定属性名的性情的值组成的Array。 

reject(iterator)

instance

iterator: a function object conforming to Function(value, index)

和  findAll(State of Qatar相反(再次来到全数等于false的要素). 

select(iterator)

instance

iterator: a function object conforming to Function(value, index)

同 findAll(). 

sortBy(iterator)

instance

iterator: a function object conforming to Function(value, index)

依照各种成分调用Iterator再次回到的值举行排序再次回到八个Array。 

toArray()

instance

(none)

回来由集合全部因素结合的三个Array。 

zip(collection1[, collection2 [, … collectionN [,transform]]])

instance

collection1 .. collectionN: enumerations that will be merged, transform:
a function object conforming to Function(value, index)

统风流倜傥每种给出的聚焦到当前聚焦。合并操作重回贰个新的array,那个array的因素个数和原集合的因素个数同样,那个array的每一种成分又是贰个子array,它合并了独具集结中意气风发律index的元素。假使transform函数被内定,那么array的每种成分还有大概会调用transform函数先做拍卖。比方:
[1,2,3].zip([4,5,6], [7,8,9]).inspect() 返回 “[
[1,4,7],[2,5,8],[3,6,9] ]” 

5.4.3 The Hash object

Hash对象完成生机勃勃种Hash布局,也正是叁个Key:Value对的聚焦。 

Hash中的各种Item是多个有两个成分的array,前贰个是Key,后三个是Value,各种Item也是有三个不需加以评释的习性,key和value。 

Method

Kind

Arguments

Description

keys()

instance

(none)

回到全体Item的key的聚集的一个array。 

values()

instance

(none)

回来全部Item的value的聚众的三个array。 

merge(otherHash)

instance

otherHash: Hash object

统朝气蓬勃给出的Hash,重回八个新Hash。 

toQueryString()

instance

(none)

以QueryString那样的体制重临hash中有着的item,例如:
‘key1=value1&key2=value2&key3=value3’ 

inspect()

instance

(none)

用意气风发种适于的措施展现hash中的key:value对。

5.4.4 The ObjectRange class

继承自  Enumerable

用上、上边际描述多个目的区域。 

Property

Type

Kind

Description

start

(any)

instance

range的上面界

end

(any)

instance

range的上面界

exclusive

Boolean

instance

调整边界本人是或不是range的风度翩翩局部。

Method

Kind

Arguments

Description

[ctor](start, end, exclusive)

constructor

start: the lower bound, end: the upper bound, exclusive: include the
bounds in the range?

始建多少个range对象,从start生成到end,这里要留心的是,start和end必段项目朝气蓬勃致,何况该项目要有succ(卡塔尔方法。 

include(searchedValue)

发表评论

电子邮件地址不会被公开。 必填项已用*标注