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);
子類要增加方法時可使用
新聞熱點
疑難解答