Prototype.js作為
javascript的成功的開源框架,封裝了很多好用的功能,雖然官方?jīng)]提供什么文檔,不過(guò)在google上一搜,好多相
關(guān)的文檔,不過(guò)在學(xué)習(xí)使用的過(guò)程中還是碰到了一些問(wèn)題,希望熟悉的朋友能多加指點(diǎn),對(duì)于prototype.js學(xué)習(xí)我關(guān)注這么幾點(diǎn),同時(shí)針對(duì)每點(diǎn)也講講
學(xué)習(xí)的結(jié)果和碰到的問(wèn)題,^_^
1、類的創(chuàng)建
prototype.js已經(jīng)封裝好了,這個(gè)很簡(jiǎn)單。









可以看到在使用這樣的方式定義class后,它和javascript原來(lái)的通過(guò)function方式來(lái)定義一個(gè)類就有明確的區(qū)分了,在這種情況下我們就 可以用Class.create來(lái)定義類,用function來(lái)直接定義函數(shù)。
類通常還涉及靜態(tài)成員(static性質(zhì)的)和實(shí)例成員(需要實(shí)例化才可調(diào)用)的定義。
在javascript中這點(diǎn)也非常容易:
靜態(tài)成員:














2、類的繼承
類的繼承其實(shí)javascript本身就支持的,不過(guò)prototype提供了一種另外的方法。
按照javascript的支持的實(shí)現(xiàn):


在使用prototype的情況下可以這么實(shí)現(xiàn):












在事件機(jī)制上則碰到了一些疑惑,作為事件機(jī)制主要需要提供事件的定義,對(duì)于事件的監(jiān)聽以及對(duì)于事件的觀察。
在javascript中事件需要以on開頭,也就是作為事件就需要采用onclick這樣類似的命名:
對(duì)上面的Student增加一個(gè)對(duì)外的事件,如:





















Observe是這么嘗試的:
Event.observe(study,'study',watchStudy,false);
按照觀察機(jī)制來(lái)說(shuō),應(yīng)該在執(zhí)行study的時(shí)候會(huì)看到兩個(gè)提示,但最后執(zhí)行后這行根本就沒(méi)起到任何作用。
這是為什么呢?