問(wèn)題1: OOP 指什么傀顾?有哪些特性
OOP指的是面向?qū)ο缶幊獭?/p>
面向?qū)ο缶幊痰乃悸罚喊涯硞€(gè)功能看成一個(gè)整體(對(duì)象),通過(guò)調(diào)用對(duì)象的某個(gè)方法來(lái)啟動(dòng)功能碌奉。在用的時(shí)候不去考慮這個(gè)對(duì)象內(nèi)部的實(shí)現(xiàn)細(xì)節(jié)短曾,在去實(shí)現(xiàn)這個(gè)對(duì)象細(xì)節(jié)的時(shí)候不用管誰(shuí)在調(diào)用。面向?qū)ο蟮膶?xiě)法不僅更簡(jiǎn)潔赐劣,而且更可控嫉拐。
問(wèn)題2: 如何通過(guò)構(gòu)造函數(shù)的方式創(chuàng)建一個(gè)擁有屬性和方法的對(duì)象?
function Fn(para1, para2){
this.key1 = para1
this.key2 = para2
this.fn = function(){
// do something...
}
}
var obj = new Fn(arg1, arg2)
問(wèn)題3: prototype 是什么?有什么特性
prototype指的是原型魁兼。每創(chuàng)建一個(gè)函數(shù)婉徘,都會(huì)有一個(gè)prototype屬性,這個(gè)屬性是一個(gè)指針咐汞,用來(lái)指向函數(shù)的原型對(duì)象盖呼。prototype就是通過(guò)調(diào)用構(gòu)造函數(shù)而創(chuàng)建的那個(gè)對(duì)象實(shí)例的原型對(duì)象
- 當(dāng)創(chuàng)建一個(gè)函數(shù)時(shí),就會(huì)為這個(gè)函數(shù)創(chuàng)建一個(gè) prototype 屬性化撕,這個(gè)屬性指向函數(shù)的原型對(duì)象几晤,默認(rèn)情況下,所有原型對(duì)象都會(huì)自動(dòng)獲得一個(gè) constructor 屬性植阴,這個(gè)屬性是一個(gè)指向 prototype 屬性所在函數(shù)的指針蟹瘾。
- 當(dāng)調(diào)用構(gòu)造函數(shù)創(chuàng)建一個(gè)實(shí)例后,該實(shí)例內(nèi)部將包含一個(gè)指針 proto 指向構(gòu)造函數(shù)的原型對(duì)象掠手。
- 當(dāng)訪(fǎng)問(wèn)對(duì)象的屬性或方法時(shí)热芹,先從對(duì)象本身找,找不到就順著原型鏈到構(gòu)造函數(shù)的原型對(duì)象上找惨撇。
問(wèn)題4:畫(huà)出如下代碼的原型圖
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('前端');
image.png
問(wèn)題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(){
// do something...
},
stop: function(){
// do something...
},
getStatus: function(){
// do something...
}
}
var car = new Car('name', 'color', 'status')
問(wèn)題6: 創(chuàng)建一個(gè) GoTop 對(duì)象纯蛾,當(dāng) new 一個(gè) GotTop 對(duì)象則會(huì)在頁(yè)面上創(chuàng)建一個(gè)回到頂部的元素,點(diǎn)擊頁(yè)面滾動(dòng)到頂部纵隔。擁有以下屬性和方法
-
ct
屬性翻诉,GoTop 對(duì)應(yīng)的 DOM 元素的容器 -
target
屬性炮姨, GoTop 對(duì)應(yīng)的 DOM 元素 -
bindEvent
方法, 用于綁定事件 -
createNode
方法碰煌, 用于在容器內(nèi)創(chuàng)建節(jié)點(diǎn)