引入
看過高程書的對這個設計模式應該很熟悉。構造器模式屬於建立型設計模式。那麼什麼是建立型設計模式呢?
建立型設計模式專注於處理物件的建立機制。也就是說這類模式,都和建立物件的過程密不可分。
除了構造器模式屬於這類模式。還有其他一些設計模式也屬於建立型設計模式。比如:
工廠模式
抽象模式
原型模式
單例模式
生成器模式
下面還是先來談談構造器模式。
什麼是構造器?
在物件導向的程式語言中,構造器是乙個類中用來初始化新物件的特殊方法。並且可以接受引數用來設定例項物件的屬性和方法。
基本構造器
在 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方法來對上面的...