高階1-物件、原型

weixin_34148340發表於2018-07-09

1. OOP 指什麼?有哪些特性?

OOP指(Object Oriented Programming,物件導向程式設計),物件導向程式設計(OOP)是一種基於“物件”概念的程式設計正規化,它可以以欄位的形式包含資料,通常稱為屬性;以程式的形式,包含程式碼,通常稱為方法。

物件導向有兩個基本概念:
:類(Class)定義了一件事物的抽象特點;它定義了一些特點(屬性 property)和行為(方法 method);類是物件的型別模板。
例項:例項是根據類建立的物件;可以說類的例項是物件,類實際上就是一種資料型別;物件是類的具體化。

物件導向有三大特徵:
封裝:封裝將變數和方法封裝在一個類中,定義程式如何引用物件的資料,可以對成員變數進行隱藏,控制使用者對類的修改和訪問資料。外部對類成員的訪問都通過方法進行,能夠保護類成員不被非法修改。封裝利於模組化和資訊隱藏。
繼承:如果類別A繼承自類別B,那麼把A稱為B的子類,把B稱為A的父類;子類擁有具有父類別的各種屬性和方法,子類繼承父類的同時,可以重新定義某些屬性或方法,即覆蓋父類別的原有屬性和方法。也可為子類追加新的屬性和方法
多型: 多型指同一個實體同時具有多種形式,即介面有多種不同的實現方式,允許將子類型別的指標賦值給父類型別的指標

2.如何通過建構函式的方式建立一個擁有屬性和方法的物件?

使用new的方法,一個函式使用new呼叫的時候就是建構函式
new 運算子接受一個函式 F 及其引數:new F(arguments...)。這一過程分為三步:

  1. 建立類的例項。這步是把一個空的物件的 proto 屬性設定為 F.prototype 。
  2. 初始化例項。函式 F 被傳入引數並呼叫,關鍵字 this 被設定為該例項。
  3. 返回例項
    舉例:
function Person(nick, age){
    this.nick = nick;
    this.age = age;
    this.sayName = function(){
            console.log(this.nick);
    }
}
var p1 = new Person('Byron', 25);
p1.nick
"Byron"
p1.age
25
p1.sayName()
VM282:5 Byron

3.prototype 是什麼?有什麼特性?

prototype是函式物件的一種屬性,在函式宣告後,函式自動獲取,指向函式的原型物件;
當用這個函式作為建構函式建立物件時,物件例項的proto屬性指向其建構函式的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('前端');

[圖片上傳失敗...(image-560399-1531072378397)]

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 () {
    console.log('Car is running');
}

Car.prototype.stop = function () {
    console.log('Car is stopped');
}

Car.prototype.getStatus = function () {
    console.log('Car status: ' + this.status);
}

var car1 = new Car(Bently, white, new);
6073413-7844590fb54fb767.png
image.png

6.建立一個 GoTop 物件,當 new 一個 GotTop 物件則會在頁面上建立一個回到頂部的元素,點選頁面滾動到頂部。擁有以下屬性和方法

1. `ct`屬性,GoTop 對應的 DOM 元素的容器
2.  `target`屬性, GoTop 對應的 DOM 元素
3.  `bindEvent` 方法, 用於繫結事件
4 `createNode` 方法, 用於在容器內建立節點

返回頂部

7.使用木桶佈局實現一個圖片牆

木桶圖片牆

相關文章