javascript,令人著迷了!

來源:互聯網
上載者:User

學習了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!(做個賬)

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.