1.OOP 指什么?有哪些特性
OOP全稱object-oriented programming , 譯作面向對象編程。
特性:
- 開放封閉原則,開放指可以添加新的方法和屬性,封閉指不能修改已添加的方法和屬性。
- 類的實例化就是對象
- 封裝性,多個方法放在一個接口內,通過接口實現(xiàn)信息傳遞
- 繼承,在某些情況下,子類比父類更具體化
- 多態(tài),是指由繼承而產生的相關的不同的類
2.如何通過構造函數(shù)的方式創(chuàng)建一個擁有屬性和方法的對象?
function person(name,age) {
this.name = 'jinlong';
this.age = 26;
}
person.prototype.sayName = function () {
console.log(this.name);
}
var p1 = new person();
p1.sayName();
3.prototype 是什么?有什么特性
prototype是顯性原型,每一個函數(shù)創(chuàng)建的時候都會自動一個prototype,它是一個空的對象。它能讓我們抽象避免重復,它主要有這些特性:
- 所有實例都會通過原型鏈引用類型的prototype
- prototype相當于所有特定類型都可以訪問的一個公共容器
- 重復的東西可以放到公共容器中,避免重復。
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)建一個 Car 對象,擁有屬性name、color、status;擁有方法run,stop,getStatus
function car(name,color,status) {
this.name = name;
this.color = color;
this.status = status;
}
car.prototype = {
constructor: car,
run: function () {
console.log(this.name)
},
stop: function () {
console.log(this.color)
},
getStatus: function () {
console.log(this.status)
}
}
var a = new car('jinlong','blue','true');
6. 創(chuàng)建一個 GoTop 對象,當 new 一個 GotTop 對象則會在頁面上創(chuàng)建一個回到頂部的元素,點擊頁面滾動到頂部。擁有以下屬性和方法
-
ct屬性,GoTop 對應的 DOM 元素的容器 -
target屬性, GoTop 對應的 DOM 元素 -
bindEvent方法, 用于綁定事件 -
createNode方法, 用于在容器內創(chuàng)建節(jié)點
代碼鏈接