国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > WEB開發 > 正文

JavaScript學習:基礎繼承機制

2024-04-27 13:54:07
字體:
來源:轉載
供稿:網友

  最近因為學校做網站設計,所以一直在asp上和數據庫上大費苦心。
  
  我在前一個階段是做java程序設計的。突然接到任務并學習ASP,所以我一直都熱忠并善于利用JavaScript來構架ASP程序。
  
  Javascript的一個明顯的優點就在于它可以定義和持有自己的對象。這一點好象是VBScript所無法比擬的。
  有了這一點,可以利用JavaScript進行更接近于面向對象的程序設計。也許這將使網站開發更有樂趣...
  
  但有個嚴重的缺點!JavaScript不支持繼承機制。不象Java那樣,支持extends關鍵字(雖然這個關鍵字在JavaScript中是保留字)。
  
  在微軟的asp.net中,JavaScript才開始提供比較完善的支持。php語言當然也有繼承機制的支持,這些都叫我垂青...
  
  不過現在我根本無法說服學校的老頭子們買更好的域名空間,但是我也不想忍受ASP中無繼承機制之苦,所以急中生智,也就有了一些成果!
  
  JavaScript根本不支持繼承機制!這是肯定的。但是我們可以想辦法做些手腳,模擬一個出來。
廢話說了一堆,先來看一個例子:

  function Person()
  {
  public: // 注意這個public! 其實沒有這樣的用法, 這只是我的習慣. 幸好在實際應用中不會有錯
  this.GetName=Person_mfGetName;

  PRivate: // 和public一樣, 這也是我的習慣
  this.m_strName="Guest";
  }
  function Person_mfGetName()
  {
  return this.m_strName;
  }

  var MyPerson=new Person();
  MyPerson.GetName();

  你可以用任何輸出語句來查看結果。當然這只是第一步!
  下面是關鍵一步:繼承!

  function Student() // Extends Class: Person
  {
  EXTENDS: // 我的習慣, 但要切記不能使用小寫字母. 因為extends是JavaScript中的保留字
  this.Super=Person; // 定義指向其"父類構造器". 這里的Super也不能用小寫形式
  this.Super(); // 調用其"父類構造器". 這樣就可以從"父類"那里"繼承"所有的屬性和方法

  private:
  this.m_nStudentID=0;
  }

  雖然在Student中并沒有看到GetName()方法,但是卻可以調用。因為他已經繼承了Person的GetName()方法。

  var MyStudent=new Student();
  MyStudent.GetName(); // 注意, 調用的是其"父類"的GetName方法, 結果為返回 "Guest".


  關于JavaScript繼承實現就是這樣。只要牢記兩步:
  
  1: 在"子類"中先定義一個指向"父類"的函數(什么名字都可以,我習慣使用Super)
  2: 隨后調用這個函數
  
  這樣就可以繼承"父類"的所有屬性和方法!
  
  我現在有些懷疑的是,既然extends和super都是保留字,那為什么JavaScript卻不支持繼承呢?
  不知道有沒有其他更好的辦法?希望各位指點...


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 四川省| 伊金霍洛旗| 台北市| 廊坊市| 镇巴县| 遂平县| 云浮市| 甘谷县| 永宁县| 和林格尔县| 克东县| 肥西县| 柳林县| 鹿邑县| 建阳市| 台北县| 汽车| 丹阳市| 祁门县| 西充县| 乌海市| 苏尼特左旗| 宝鸡市| 聂荣县| 阿坝县| 萨嘎县| 麟游县| 隆化县| 河间市| 永济市| 龙泉市| 浮山县| 合水县| 宁波市| 陇南市| 张家川| 乌海市| 淳安县| 咸宁市| 玉龙| 昌邑市|