javascript學習:基礎繼承機制(2)

來源:互聯網
上載者:User
繼承   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卻不支援繼承呢?
  不知道有沒有其他更好的辦法?希望各位指點...



相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

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

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