問題1: OOP 指什么?有哪些特性
Object Oriented Programming的簡稱,即面向?qū)ο笤O(shè)計(jì)
- 封裝
能夠把一個(gè)實(shí)體的信息、功能、響應(yīng)都裝入一個(gè)單獨(dú)的對(duì)象中的特性。
封裝允許使用者不必關(guān)心類的工作機(jī)理就可以使用它。
所有對(duì)數(shù)據(jù)的訪問和操作都必須通過特定的方法,否則無法使用,從而達(dá)到數(shù)據(jù)隱藏的目的。 - 繼承
繼承的方法允許在不該都源程序的基礎(chǔ)上對(duì)其進(jìn)行擴(kuò)充,這樣使得原功能得以保存,也是新功能得以擴(kuò)展。提高程序的復(fù)用率。 - 多態(tài)性
同一操作作用于不同的類的實(shí)例,將產(chǎn)生不同的執(zhí)行結(jié)果,不同類的對(duì)象接收到相同的信息時(shí),得到不同的結(jié)果。
問題2: 如何通過構(gòu)造函數(shù)的方式創(chuàng)建一個(gè)擁有屬性和方法的對(duì)象?
使用new創(chuàng)建一個(gè)構(gòu)造函數(shù)
function People (name){
this.name = name;
this.sayName = function(){}
}
new People()//擁有屬性name和方法sayName
問題3: prototype 是什么?有什么特性
prototype是原型,每個(gè)函數(shù)都自動(dòng)生成一個(gè)原型屬性,指向這個(gè)函數(shù)的原型對(duì)象。 原型對(duì)象具有共享性。子類能復(fù)用原型對(duì)象里面的方法與屬性。
當(dāng)使用構(gòu)造函數(shù)生成一個(gè)對(duì)象的時(shí)候,這個(gè)對(duì)象就擁有一個(gè)__proto__屬性
問題4:畫出如下代碼的原型圖
function People (name){
this.name = name;
this.sayName = function(){
console.log('my name is:' + this.name);
}
}
People.prototype.walk = function(){
console.log(this.name + ' is walking');
}
var p1 = new People('饑人谷');
var p2 = new People('前端');

原型圖.png
問題5: 創(chuàng)建一個(gè) Car 對(duì)象,擁有屬性name、color、status;擁有方法run,stop,getStatus
function Car(name,color,status){
this.name=name;
this.color=color;
this.status=status;
}
Car.prototype={
run:function(){},
stop:function(){},
getStatus:function(){}
}
問題6: 創(chuàng)建一個(gè) GoTop 對(duì)象,當(dāng) new 一個(gè) GotTop 對(duì)象則會(huì)在頁面上創(chuàng)建一個(gè)回到頂部的元素,點(diǎn)擊頁面滾動(dòng)到頂部。擁有以下屬性和方法
-
ct屬性,GoTop 對(duì)應(yīng)的 DOM 元素的容器 -
target屬性, GoTop 對(duì)應(yīng)的 DOM 元素 -
bindEvent方法, 用于綁定事件 -
createNode方法, 用于在容器內(nèi)創(chuàng)建節(jié)點(diǎn)
gotop鏈接