怎么理解,JS中的面向對象、類、構造函數和實例


第一、先說說作為前端對類和構造函數的理解:

(1)類 可以理解成一種特殊的數據類型。

(2)類 里面包含了構造函數,或者說構造函數是類里面的特殊方法。在new 實例的時候會自動調用 構造函數。

第二、new一個實例的過程分為兩步:

(1)第一步現在內存中開辟一塊空間

(2)第二步自動調用構造函數,會執行構造函數里面的代碼。

 

JavaScript是面向對象的語言,引用數據類型都是對象(也就是我們說的萬物皆對象),包括函數也是對象,同時還可以通過Object對象自定義對象。

但是,和其他面向對象語言(如 Java 等高級語言)比,也有很大差異,JS 中沒有類或接口的概念,即不能直接定義抽象的類,也不能直接實現繼承。不過,為了編程的方便,我們可以在 JS 中模擬類和繼承的行為

創建對象實例或類(雖然沒有類的概念,但是可以用於創建新對象的對象看作類),可以通過構造函數來實現,構造函數就是具有一系列屬性和行為作為函數體的函數,可以通過函數參數傳入值。它就相當於 Java 中類的構造函數,需要時可以通過 var instanceObj = new ConstructorFunc(para1,para2,...) 來創建對象(實例)。JS 的對象中還有一個重要概念,即原型。每個對象都有原型,原型也是一個對象,可以看做是構造函數的映像,是創建實例的模型。對象(類)的屬性 prototype 即是對原型對象的引用,創建實例后,也有屬性 __proto__ 指向原型對象,但該屬性是隱含的。由於不斷創造新對象(實例),一級一級的傳遞原型對象,即可構成原型鏈。通過原型鏈,即可實現繼承。首先將父類對象的實例給子類的原型 ChildCons.prototype = new ParentCons(),再在子類構造函數中調用父類構造函數將繼承的屬性初始化。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM