面向對象編程思想
?一、面相過程:注重解決問題的步驟,分析問題需要的每一步,實現(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ù))
工廠模式解決了代碼復用的問題;
對象和類
????一、對象:具體的某個事物;(如:小明、叮當貓)
????二、類:一類事物的抽象;(如:人類、貓類)
