1、OOP 指什么?有哪些特性?
OOP即Object Oriented Programming,中文譯為面向對象編程,是一種計算機編程架構。
其中兩個最重要的概念就是類和對象。類是指具備了某些功能和屬性的抽象模型,而實際應用中需要對類進行實例化,類在實例化之后就是對象。
它具有如下幾種特性:
- 封裝性:將一個類的使用和實現分開,只保留部分接口和方法與外部聯系;
- 繼承性:子類可以繼承其父級類中的屬性和方法。它大大提高了代碼的可重用性;
- 多態性:子類繼承了來自其父級類中的屬性和方法,并對其中的部分方法進行了重構,從而產生若干相互關聯而又互相獨立的類。
2、如何通過構造函數的方式創建一個擁有屬性和方法的對象?
function Person(name,age){
this.name = name
this.age = age
this.sayHello = function(){
console.log("Hello!My name is " + this.name)
}
}
var p1 = new Person('LiLei',23)
var p2 = new Person('HanMeimei',21)
3、prototype 是什么?有什么特性?
prototype對象是實現面向對象的一個重要機制。
在JS中,每個函數都是一個對象,而每個函數對象都有一個子對象—— prototype對象,也叫作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('前端');
5、創建一個 Car 對象,擁有屬性name、color、status;擁有方法run,stop,getStatus。
function Car(name, color, status){
this.name = name
this.color = color
this.status = status
}
Car.prototype.run = function(){
this.status = 'run'
}
Car.prototype.stop = function(){
this.status = 'stop'
}
Car.prototype.getStatus = function(){
return this.status
}
var car1 = new Car('Ford','red','run')
6、創建一個 GoTop 對象,當 new 一個 GotTop 對象則會在頁面上創建一個回到頂部的元素,點擊頁面滾動到頂部。擁有以下屬性和方法:
-
ct
屬性,GoTop 對應的 DOM 元素的容器 -
target
屬性,GoTop 對應的 DOM 元素 -
bindEvent
方法,用于綁定事件 -
createNode
方法,用于在容器內創建節點
效果鏈接:http://js.jirengu.com/duliwosuce/2/edit