學習了prototype,通過一些聯絡,盡然對javascrip有了很深的感情,不錯.同樣是一門優美的語言.一個學習ruby的朋友對我說,動態語言的美感,但是我從對ruby的幾天學習,感覺的不是美麗,而是亂.但是,今天,javascript,在prototype的擴充下,顯示出了"動態"語言的美,它的文法,它的書寫,爽!
特彆強調一下,我最愛寫的一句話:$A();
呵呵!
一個簡單的shortcut,盡然有如此的魅力,真實不可思議.
嘗試寫自己shortcut中,但這樣也許是不能用的,因為標註庫的擴充中也會有新的shortcut出現,會不會重複,也許會出現問題,思考中.....
prototype在對javascript OO 方面的擴張,使這個原來用起來,總是感覺怪怪的東東,變的一樣具有很強的物件導向的體繫結構特性,對於一個學習和使用OO語言的人來說,真實不錯.
隨便寫的,用了OO哦!
var Person = Class.create();
Person.prototype = {
initialize:function(id,name,email,age){
this.Id =id;
this.Name = name;
this.Email = email;
this.Age = age;
},
showSelf:function(element){
var str = "Name:"+this.Name+"\n"+"Email:"+this.Email+"\nAge:"+this.Age;
Element.update(element,str);
}
};
var personList = Class.create();
personList.prototype={
_personList:[],
initialize:function(){
this._personList = new Array();
},
GetLength:function(){return this._personList.length},
add:function(_person){
this._personList[this._personList.length]=_person;
},
remove:function(i){
for(var j=i;j<this._personList.length-1;j++){
this._personList[j]=this.personList[j+1];
}
this._personList.length=this._personList.length-1;
},
del:function(_id){//有些問題
var flag = 0;
if(this._personList!=null){
this._personList.each(function(e){
if(e.Id ==_id){
{
remove(flag);
}
}
flag++;
}); //each
}
},
show:function(element)
{
element = $A(element);
var i=0;
this._personList.each(function(e){e.showSelf(element[i++]);});
}
};
var list = new personList();
function addPerson(id,name,email,age){
p = new Person(id,name,email,age);
list.add(p);
}
function delPerson(id){
if(list.length>0)
list.del(id);
}
function showPerson(element){
list.show(element);
}
function showLength(){
alert(list.GetLength());
}
這個東東的調試真是一件痛苦的事情
但從另外一面來說,這是一個非常好的鍛煉的機會,脫離的沉重的IDE,輕裝上陣.這不但要求有好的風格,還要有嚴謹的思考,鍛煉啊!
一個搞了半天的問題:
myclass = Class.create();
myclass.prototype={
_personList:[],
initialize:function(){
this._personList = new Array();
},
len : function(){return this._personList.length;}
};
//now , try to invoke the len
first:一直認為這是一個屬性啊,所以:
alert(new myclass().len);
出現結果令人吃驚:function(){return this._personList.length;}
一個string
then:這是一個啥?
alert(new myclass().len());
這次對了,但是為啥如此呢?屬性也需要這樣調用嗎?難道說這不是屬性?還是別的原因?呵呵,我也不知道,也許就是這樣的玩意吧,繼續學習中,也許明天就有很好的解釋了.....
---------2006.7.9
--------2006.7.8:買了條新褲子,60RMB;一個耳機,global:25RMB!(做個賬)