面向?qū)ο缶幊趟枷?/b>
?一塞俱、面相過程:注重解決問題的步驟,分析問題需要的每一步吏垮,實現(xiàn)函數(shù)依次調(diào)用障涯;
?二、面相對象:是一種程序設(shè)計思想膳汪。將數(shù)據(jù)和處理數(shù)據(jù)的程序封裝到對象中唯蝶;
?三、面相對象特性:?抽象遗嗽、?繼承粘我、封裝、多態(tài)
優(yōu)點:提高代碼的復(fù)用性及可維護性痹换;
Javascript?是一種基于對象的語言征字,幾乎所有東西都是對象;
對象創(chuàng)建方法:
? ? 1-?字面量創(chuàng)建(比構(gòu)造函數(shù)創(chuàng)建性能好)
? ? 2-?new?Object()構(gòu)造函數(shù)創(chuàng)建
? ? 3-?Object.create()創(chuàng)建:創(chuàng)建對象的原型娇豫;
對象的調(diào)用
new運算符
new的特點:
1.new能執(zhí)行函數(shù)?
2.自動創(chuàng)建空對象匙姜;
3.this綁定到空對象;
4?隱式返還this锤躁;
通過new來改造工廠模式
構(gòu)造函數(shù)
????-?構(gòu)造函數(shù)要通過new來調(diào)用搁料,this指向Student
????-?約定俗成構(gòu)造函數(shù)首字母大寫
構(gòu)造函數(shù)性能
????????????公共空間存放公共方法?prototype ,更節(jié)約內(nèi)存
構(gòu)造函數(shù)原型
????????????prototype和constructor
????????????????????prototype固有屬性??constructor--->Person系羞;
????????????????????Person.prototype.constructor?===?Person
prototype原型
????????-?通過new實例化出來的對象其屬性和行為來自兩個部分郭计,一部分來自構(gòu)造函數(shù),另一部分來自原型椒振。
????????-?當聲明一個函數(shù)的時候昭伸,同時也申明了一個原型?。
????????-?原型本身是一個對象澎迎。
????????-?對象屬性方法查找規(guī)則庐杨;
靜態(tài)屬性及方法
??-?靜態(tài)方法里的this;
??-?擴展功能夹供;
工廠模式對比構(gòu)造函數(shù)
????1.但是卻沒有解決對象識別的問題灵份。即創(chuàng)建的所有實例都是Object類型。(不清楚是哪個對象的實例)
????2.工廠模式?jīng)]有原型哮洽,占用內(nèi)存
工廠模式(了解就可以填渠,推薦用構(gòu)造函數(shù))
工廠模式解決了代碼復(fù)用的問題;
對象和類
????一、對象:具體的某個事物氛什;(如:小明莺葫、叮當貓)
????二、類:一類事物的抽象枪眉;(如:人類捺檬、貓類)