天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

類之Prototype.js學習

Prototype.js作為Javascript的成功的開源框架,封裝了很多好用的功能,雖然官方沒提供什么文檔,不過在google上一搜,好多相關的文檔,不過在學習使用的過程中還是碰到了一些問題,希望熟悉的朋友能多加指點,對于prototype.js學習我關注這么幾點,同時針對每點也講講學習的結果和碰到的問題,^_^
   1、類的創建
     prototype.js已經封裝好了,這個很簡單。

var Person=Class.create();

 這樣就創建了一個Person類,這個Person類必須提供initialize方法的實現:

Person.prototype={
                initialize:function(){
                }
     };

   對比Java,Class.create相當于Class.forName(),initialize相當于構造器,和Java的構造器一樣,可以自定義為帶參數性質的。
     可以看到在使用這樣的方式定義class后,它和Javascript原來的通過function方式來定義一個類就有明確的區分了,在這種情況下我們就可以用Class.create來定義類,用function來直接定義函數。
     類通常還涉及靜態成員(static性質的)和實例成員(需要實例化才可調用)的定義。
     在Javascript中這點也非常容易:
     靜態成員:  

var Person={
               name:'person',
               getName:function(){return 'person'}
     };

實例成員: 

Person.prototype={
              childname:'child',
              eat:function()
     }

上面的Person.getName是可以直接這么調用的,但eat方法則需通過var person=new Person();person.eat();的方式來調用。
2、類的繼承
     類的繼承其實Javascript本身就支持的,不過prototype提供了一種另外的方法。
     按照Javascript的支持的實現:

var Student=Class.create();
     Student.prototype=new Person();

這樣就實現了Student繼承至Person。
     在使用prototype的情況下可以這么實現:

var Student=Class.create();
     Object.extend(Student.prototype,Person.prototype);
子類要增加方法時可使用  
Student.prototype.study=function(){};

Object.extend(Student.prototype,{
          study:function(){}
});

3、事件機制(對類方法執行的監聽和觀察)
     在事件機制上則碰到了一些疑惑,作為事件機制主要需要提供事件的定義,對于事件的監聽以及對于事件的觀察。
     在Javascript中事件需要以on開頭,也就是作為事件就需要采用onclick這樣類似的命名:
     對上面的Student增加一個對外的事件,如:    

Student.prototype.study=function(){
            this.onstudy();
     }
     Student.prototype.onstudy=function(){};
這個onstudy就是交給相應的實例去實現的,例如實例采用這樣的方式:  
function studyThis(){
         alert("study this");
     }
     var student=new Student();
     student.onstudy=studyThis();
對于事件通常都希望進行監聽和觀察,根據prototype提供的bindAsEventListener以及Observe,這么進行了嘗試:
study.onstudy=watchStudy.bindAsEventListener(this);
     function watchStudy(event){
           alert("watch study");
     }

按照事件機制來說,在執行study的時候應該可以看到study this和watch study兩個提示,但最后執行后只能看到watch study的提示,這是為什么呢?按照listener的概念的話,不應該覆蓋原有方法的,不過我看了一下prototype.js的源代碼,按照上面的編寫方式確實會照成覆蓋原方法。
     Observe是這么嘗試的:
     Event.observe(study,'study',watchStudy,false);
     按照觀察機制來說,應該在執行study的時候會看到兩個提示,但最后執行后這行根本就沒起到任何作用。
     這是為什么呢?

JavaScript技術類之Prototype.js學習,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 伊人久久大香线蕉电影院 | 国产AV亚洲国产AV麻豆 | 睡觉被偷偷进入magnet | 棉袜足j吐奶视频 | 天美传媒在线观看免费完整版 | 啪啪做羞羞事小黄文 | 多男同时插一个女人8p | 人妻体体内射精一区二区 | 日本xxx在线观看免费播放 | YELLOW视频直播在线观看高清 | 欧美残忍xxxx极端 | 东北小伙FREECHINESE野外 东北嫖妓对白粗口 | 日韩人妻少妇一区二区三区 | 亚洲一在线 | 吃胸亲吻吃奶摸下面免费视频 | 你的欲梦裸身在线播放 | 精品国产在线亚洲欧美 | 国产精品第八页 | 亚洲中文字幕日产乱码2020 | 狠狠干2022| 99er热精品视频国产免费 | 99re热有精品国产 | 久久精品动漫网一区二区 | 美国大臿蕉香蕉大视频 | 三男强一女90分钟在线观看 | 久久99精品国产99久久6男男 | 日韩在线 无码 精品 | 一个人看的HD免费高清视频 | 无套内射CHINESEHD熟女 | 领导边摸边吃奶边做爽在线观看 | 99E久热只有精品8在线直播 | 国产综合欧美区在线 | 99久久99久久久99精品齐 | 夜色55夜色66亚洲精品网站 | 一品道门在线视频高清完整版 | 天堂无码人妻精品AV一区 | 精品第一国产综合精品蜜芽 | 一区二区三区高清视频 | 2022国产麻豆剧传媒剧情 | 婷婷五月久久丁香国产综合 | 被窝国产理论一二三影院 |