OOP 指什么?有哪些特性
OOP(Object-oriented programming, 面向?qū)ο笤O(shè)計)
特性:
1、封裝
能夠把一個實體的信息、功能、響應(yīng)都裝入一個單獨的對象中的特性。
- 是把客觀事物封裝成抽象的類,并且類可以把自己的數(shù)據(jù)和方法只讓可信的類或者對象操作,對不可信的進(jìn)行信息隱藏;
- 所有對數(shù)據(jù)的訪問和操作都必須通過特定的方法,否則無法使用,從而達(dá)到數(shù)據(jù)隱藏的目的。
2、繼承
繼承使用現(xiàn)有類的所有功能,并在無需重新編寫原來的類的情況下對這些功能進(jìn)行擴(kuò)展。
3、多態(tài)性
允許將子類類型的指針賦值給父類類型的指針。
實現(xiàn)多態(tài),有二種方式,覆蓋,重載。
(1)覆蓋,是指子類重新定義父類的虛函數(shù)的做法。
(2)重載,是指允許存在多個同名函數(shù),而這些函數(shù)的參數(shù)表不同(或許參數(shù)個數(shù)不同,或許參數(shù)類型不同,或許兩者都不同)。
如何通過構(gòu)造函數(shù)的方式創(chuàng)建一個擁有屬性和方法的對象
function Person(nick, age){
this.nick = nick;
this.age = age;
}
Person.prototype.sayName = function(){
console.log(this.nick);
}
var p1 = new Person('hello', '22');
p1.sayName(); // hello
prototype 是什么?有什么特性
prototype:每一個構(gòu)造函數(shù)都有一個prototype屬性,指向另一個對象。
這個對象的所有屬性和方法,都會被構(gòu)造函數(shù)的實例繼承。
畫出如下代碼的原型圖

1.jpg

1.jpg
創(chuàng)建一個 Car 對象,擁有屬性name、color、status;擁有方法run,stop,getStatus

3.jpg
創(chuàng)建一個 GoTop 對象,當(dāng) new 一個 GotTop 對象則會在頁面上創(chuàng)建一個回到頂部的元素,點擊頁面滾動到頂部。擁有以下屬性和方法
1、 ct屬性,GoTop 對應(yīng)的 DOM 元素的容器
2、target屬性, GoTop 對應(yīng)的 DOM 元素
3、bindEvent 方法, 用于綁定事件
4、createNode 方法, 用于在容器內(nèi)創(chuàng)建節(jié)點
使用木桶布局實現(xiàn)一個圖片墻

4.jpg
https://github.com/nciilin/trsk/blob/master/%E9%AB%98%E7%BA%A71/Barrle.html