面向對象-1:對象創(chuàng)建、調用 / new實例化->構造函數(shù) / 原型prototype / 工廠模式 / 包裝對象

面向對象編程思想

?一、面相過程:注重解決問題的步驟,分析問題需要的每一步,實現(xiàn)函數(shù)依次調用;

?二、面相對象:是一種程序設計思想。將數(shù)據(jù)和處理數(shù)據(jù)的程序封裝到對象中;

?三、面相對象特性:?抽象、?繼承、封裝、多態(tài)

優(yōu)點:提高代碼的復用性及可維護性;


Javascript?是一種基于對象的語言,幾乎所有東西都是對象;

對象創(chuàng)建方法:

? ? 1-?字面量創(chuàng)建(比構造函數(shù)創(chuàng)建性能好)

? ? 2-?new?Object()構造函數(shù)創(chuàng)建

? ? 3-?Object.create()創(chuàng)建:創(chuàng)建對象的原型;

對象的調用


new運算符

new的特點:

1.new能執(zhí)行函數(shù)?

2.自動創(chuàng)建空對象;

3.this綁定到空對象;

4?隱式返還this;

通過new來改造工廠模式


構造函數(shù)

????-?構造函數(shù)要通過new來調用,this指向Student

????-?約定俗成構造函數(shù)首字母大寫

構造函數(shù)性能

????????????公共空間存放公共方法?prototype ,更節(jié)約內存

構造函數(shù)原型

????????????prototype和constructor

????????????????????prototype固有屬性??constructor--->Person;

????????????????????Person.prototype.constructor?===?Person

prototype原型

????????-?通過new實例化出來的對象其屬性和行為來自兩個部分,一部分來自構造函數(shù),另一部分來自原型。

????????-?當聲明一個函數(shù)的時候,同時也申明了一個原型?。

????????-?原型本身是一個對象。

????????-?對象屬性方法查找規(guī)則;

靜態(tài)屬性及方法

??-?靜態(tài)方法里的this;

??-?擴展功能;


工廠模式對比構造函數(shù)

????1.但是卻沒有解決對象識別的問題。即創(chuàng)建的所有實例都是Object類型。(不清楚是哪個對象的實例)

????2.工廠模式?jīng)]有原型,占用內存


工廠模式(了解就可以,推薦用構造函數(shù))

工廠模式解決了代碼復用的問題;

對象和類

????一、對象:具體的某個事物;(如:小明、叮當貓)

????二、類:一類事物的抽象;(如:人類、貓類)


?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容