在用面向對象的思想規整代碼以前,全部js代碼都寫成一堆,那個是面向過程(代碼堆在一塊兒,靠註釋區分)編程
面向對象能夠理解成,是過程式代碼的高度封裝,目的在於提升代碼的可維護性和開發效率。函數
理解一下對象:具備某特徵或某方法的某個事物(其特徵就是屬性,其行爲就是方法)this
三種建立對象的方式:
1.字面量的方式
2.調用系統的構造函數
3.自定義構造函數的方式spa
//字面量方式建立對象 let per1={ name:'小白', age:10, say:function(){ return 'hello' } } //調用系統的構造函數建立對象 let per2=new Object() per2.name='小黃' per2.age=8 per2.eat=function(){ return'eat something' } //自定義構造函數建立對象 function Per3(name,age){ this.name=name this.age=age this.play=function(){ return 'play gemes' } } let per3=new Per3('小黃',10) //工廠模式建立對象 function creatObject(name,age){ let obj=new Object() obj.name=name obj.age=age obj.say=function(){ console.log('hello') } return obj } let per4=creatObject('小白',10)
js能夠模擬面向對象
面向對象特性:封裝、繼承、多態、抽象
封裝:代碼重用
繼承:關鍵概念——類,指類與類之間的關係,js中沒有類的概念,有構造函數的概念,基於原型,能夠繼承,經過構造函數模擬類的概念。
多態:一個對象有不一樣的行爲,或,同一行爲,針對不一樣的對象,產生不一樣的效果設計
面向對象的設計思想是:code
抽象出 Class對象
根據 Class 建立 Instanceblog
指揮 Instance 得結果繼承
總結:開發
面向對象就是,根據需求,分析對象,找到對象有什麼特徵和行爲,經過建立對象(構造函數建立對象),對象調用屬性和方法來實現需求。