Javascript基礎與物件導向基礎~第四講 Javascript中的類對象

來源:互聯網
上載者:User
文章目錄
  • 佔佔對類的定義:
  • 佔佔對結構體的定義:
  • 實現結構體的代碼:
  • 實現複雜的類的代碼:
  • 小知識:JS實作類別的繼承的機制是這樣的:

回到目錄 

  今天來說JS中如何?類(class),事實上本應該昨天晚上寫的,可我失言了,在些說一聲“抱歉”!JS中的類是JS物件導向的基礎,也是我最拿手的東西,你寫的代碼能否提高一個層次,一般是從這點上看出來的。

佔佔對類的定義:

類是對現實中的事物的抽象,一個類一般由屬性和方法構成,屬性是一些固定的資訊,而方法是類的某種行為,類往往用來抽象一些複雜的對象,類與類這間可以進行繼承,一般通過JS的function實現,JS中的類對象是實現JS物件導向的基礎。

佔佔對結構體的定義:

一個結構體也是對現實事物的一種抽象,它用來表示邏輯簡單的對象,一般通過JS的object對象實現

實現結構體的代碼:
      //簡單結構體對象        var Animal = {            Name: "動物",            Type: "",            Food: ["草", "肉"],            Print: function () {                console.log("名稱:" + this.Name + ",類型:" + this.Type + ",食物:" + this.Food);            }        };        Animal.Print();//調用
實現複雜的類的代碼:
     //複雜的類型對象        var AnimalFun = function (name, type) {            this.Name = name;            this.Type = type;            this.Food = ["草", "肉"];            this.Print = function () {                console.log("名稱:" + this.Name + ",類型:" + this.Type + ",食物:" + this.Food);            }        };        var animalFun = new AnimalFun();        animalFun.Print();

子類去繼承父類,但複寫父類的屬性,調用父類的方法,代碼如下:

     //子類可以繼承父類,並可以複寫它的屬性        var Dog = function (name, type, food) {            //調用父類構造方法,並傳遞name參數              AnimalFun.call(this, name, type);            //複寫屬性              this.Food = food;        }        //將Dog的原型鏈指向AnimalFun對象          Dog.prototype = new AnimalFun();        //重設constructor屬性為Student類,由於設定了Student類的prototype為Person時          //擦除了constructor屬性          Dog.prototype.constructor = Dog;        //執行個體化Dog類          var s = new Dog('狗', '低級動物', '肉');        //調用父類的方法          s.Print(); //結果:名稱:狗,類型:低級動物,食物:肉
小知識:JS實作類別的繼承的機制是這樣的:

在子類建構函式(constructor)中調用父類建構函式(父類.call()).

修改子類prototype(原型鏈)屬性為父類的執行個體.(prototype一般用來實現對函數的擴充,Dog.prototype = new AnimalFun();表示對父類AnimalFun進行擴充)

重設子類的prototype的constructor屬性為子類.

感謝您的閱讀!

回到目錄

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.