JS設計模式 構造器模式

2021-09-25 02:19:04 字數 1350 閱讀 5059

引入

看過高程書的對這個設計模式應該很熟悉。構造器模式屬於建立型設計模式。那麼什麼是建立型設計模式呢?

建立型設計模式專注於處理物件的建立機制。也就是說這類模式,都和建立物件的過程密不可分。

除了構造器模式屬於這類模式。還有其他一些設計模式也屬於建立型設計模式。比如:

工廠模式

抽象模式

原型模式

單例模式

生成器模式

下面還是先來談談構造器模式。

什麼是構造器?

在物件導向的程式語言中,構造器是乙個類中用來初始化新物件的特殊方法。並且可以接受引數用來設定例項物件的屬性和方法。

基本構造器

在 js 中,es6之前是不支援類這個概念的,所以一般用函式來表示乙個構造器,使用方法是在構造器函式前使用 new 關鍵字。

所以,基本的構造器模式看起來是這樣的:

// 建構函式

function person(name, age, gender)

}// 使用

var person = new person('zkk', 22, 'male')

console.log(person.sayname()) // => hi! i am zkk.

帶原型的構造器

上面的基本構造器有個不理想的地方,就是每次建立乙個新物件,都需要重新定義 sayname 這個方法。

為了使 sayname 這個方法在例項之間共享,我們使用原型(prototype)來優化。

如果在建構函式的原型屬性上新增 sayname 方法,那麼所有例項化的物件都會共享這個方法。優化**是這樣的:

// 建構函式

function person(name, age, gender)

// 原型屬性新增 sayname 方法

person.prototype.sayname = function()

// 使用

var person = new person('zkk', 22, 'male')

console.log(person.sayname()) // => hi! i am zkk.

[擴充套件]es6版本

es6 支援了類的定義,所以寫起來風格更加優雅。

// 類宣告

class person

sayname()

}// 使用

var person = new person('zkk', 22, 'male')

console.log(person.sayname()) // => hi! i am zkk.

JS設計模式 構造器模式

看過高程書的對這個設計模式應該很熟悉。構造器模式屬於建立型設計模式。那麼什麼是建立型設計模式呢?建立型設計模式專注於處理物件的建立機制。也就是說這類模式,都和建立物件的過程密不可分。除了構造器模式屬於這類模式。還有其他一些設計模式也屬於建立型設計模式。比如 下面還是先來談談構造器模式。在物件導向的程...

設計模式 構造器模式

目錄 一 概述 二 詳解 構造器模式,也稱建構函式模式。物件構造器用於建立特定型別的物件。當用new關鍵字呼叫乙個建構函式建立物件時,函式返回值為this,即建立的物件指向函式中的this,這叫隱士返回。簡單的構造器模式 function person name,age,job var person...

js設計模式 迭代器模式

一.從乙個例子開始講起 jquery each jquery each jquery each 可以看到的時候上面有三種不同的資料結構,他們都有順序遍歷的需求,但是由於api不同,我們得寫多種遍歷的方式,而迭代器模式就是為了簡化有序集合的遍歷產生的模式 我們可以用jquery的each方法來對上面的...