DIV CSS 佈局教程網

JavaScript類
編輯:關於JavaScript     

類是什麼?   

許多剛接觸編程的朋友都可能理解不了類,其實類是對我們這個現實世界的模擬,把它說成“類別”或者“類型”可能會更容易理解一些。比如“人”這種動物就是一個類,而具體某一個人就是“人”這個類的一個實例,“人”可以有許多實例(地球人超過六十億了),但“人”這個類只有一個。你或許會說那男人和女人不也是人麼?怎麼只能有一個?其實這裡要談到一個繼承的東西,後邊才講,請繼續看下去。

如何建立一個類?   

在C++中是以class來聲明一個類的,JavaScript與C ++不同,它使用了與函數一樣的function來聲明,這就讓許多學Jscript的朋友把類與函數混在一起了,在Jscript中函數與類確實有些混,但使用久了自然而然會理解,這篇文章是針對想進攻面向對象編程的朋友而寫,就不打算一下子討論得太深了。

  請看下邊這個類的定義:
  
  function WuYouUser()
  {
    this.Name; //名字
  }
     

上邊的代碼定義了一個WuYouUser(無憂用戶)類,它有個屬性:Name(名字)。Name就是WuYouUser類的一個屬性。

一個類有固定的屬性,但類的實例卻有不同的屬性值,就像我是屬於“人”這個類的,性別是男,而我有一個女同學,她也屬於“人”類,但她的性別屬性值卻為女。

那麼如何聲明某個類的一個實例呢?非常簡單:

  
  var Wo = new WuYouUser(); //實例一:“我”
  var Biyuan = new WuYouUser(); //實例二:“碧原”(Biyuan哥,不好意思。。。嘿嘿)

類的屬性

  這個Wo(我)就是WuYouUser類的一個實例,它擁有WuYouUser給它的一切:Name屬性、Sex屬性以及Age屬性,我們可以這樣子來設置它的屬性:
  
  Wo.Name = "泣紅亭";
  
  很簡單是不是?試著運行
  
  window.document.write(Wo.Name);
  
  看看,是不是輸出了我的名字:泣紅亭?
  
  同樣設置一下碧原兄的屬性
  
  Biyuan.Name = "碧原";
  
  運行
  
    window.document.write(Biyuan.Name);
    
  可以看到輸出了"碧原",也就說明了Biyuan與Wo同樣是WuYouUser類的實例,但卻是不同的實體,具有不同的屬性值。
  
  屬性是可以設置默認值的,無憂裡都有記錄大家各自發了多少貼子,我們也同樣給WuYouUser類添加一個發貼數量的屬性ArticleCount
  
  function WuYouUser()
  {
    this.Name;
    this.ArticleCount = 0;
  }
  
  一個無憂新用戶剛注冊完之後他的發貼數量為0,在上邊的代碼中可以看到直接給屬性ArticleCount設置值為0。
  
  可以運行一下這樣的代碼:
  
  var Wo = new WuYouUser();
  window.document.write(Wo.ArticleCount);
  
  可以看到輸出了0,說明ArticleCount屬性被我們成功設置默認值為0

類的方法
  
  方法這個詞不大好理解,我覺得說成行為會更容易理解。一個人具有許多共同的行為,比如睡覺、吃飯、走路等等,現在我們給WuYouUser類添加一個發貼的方法。
  
  function WuYouUser()
  {
    this.Name;
    this.ArticleCount = 0;
    
    this.NewArticle = function()
    {
      /*
      *
      *  具體如何發貼我們大家都知道,不就是打打字,加加圖片再按一下保存之類的按鈕麼?
      *  關於具體如何發貼的代碼沒有必要在這裡寫出來,我們要了解的僅僅是方法的定義與使用
      *  我們在這裡實現一個最簡單的功能,也是很重要的功能:給我們的發貼數量加上1!
      *  注意:恐龍等級就是這樣加出來的,因此呀……大家狂發貼吧。。。
      */
      
      this.ArticleCount++;
    }
  }
  
  既然定義好了這個方法,我們來試試效果如何:
  
  var Wo = new WuYouUser();
  Wo.NewArticle();
  document.write(Wo.ArticleCount);
  
  可以看到輸出了1,說明我們發貼成功了!真是有歷史紀念意義的一刻,離恐龍等級又近一步了。

靜態屬性

  靜態屬性又稱公共屬性,它不屬於某個類的實例,而是直接屬於某個類。
  
  比如說無憂用戶有一個屬性:注冊用戶的數量,它是屬於整個無憂用戶的,而不是屬於泣紅亭或者誰的
  靜態屬性的聲明方法是:
  
  類名.prototype.屬性名 = 屬性值;
  
  比如給WuYouUser類定義一個注冊用戶的數量Count:
  
  WuYouUser.prototype.Count = 0;
  
  那

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved