js的36個設計模式 前奏

2021-07-25 08:08:12 字數 1797 閱讀 1215

先是一些js物件導向的基礎,後面的模式都會涉及到這些知識點。

var fn = function

(f) //構造器,就是例項物件時執行。。

this.getf();

};給建構函式(類)新增方法:

//新增私有方法,屬性

fn.count = 1;

//新增私有方法,屬性

fn.prototype.counta = 2;

建構函式在例項化的時候,會給物件新增乙個prototype原型物件,指向建構函式的屬性,方法。並且會建立乙個constructor屬性,指向擁有整個原型物件的建構函式或物件。

從乙個建構函式裡返回乙個建構函式生成的物件。。

var book = (function

(); function

_book

(a,b)

this.c();

};_book.prototype.d = 5;

return _book;

})();

var fn = new book(1,2);

用instanceof判斷例項化物件時,作用域是否當前建構函式。

var book = function

(a,b)else

}//把var book = new book();寫成var book = book();

var b = book(1,2);

console.log(this)會執行兩次,第一次輸出的是window。

//宣告父類

var cat = function

(); //父類的方法

cat.prototype.getfoot = function

(); //宣告子類

var bigcat = function

(); //繼承父類,把父類的例項賦值給子類的原型

bigcat.prototype = new cat();

var f = new bigcat();

f.getfoot();

類式繼承的缺點,當乙個子類例項物件修改從父類繼承來的公有屬性時,其他子類就會被影響

var fn = function

(); var fs = function

(){};

fs.prototype = new fn();

var a = new fs();

var b = new fs();

console.log(a.a);//[1,2,3]

a.a.push(4);

console.log(b.a);//[1,2,3,4]

通過call方法,讓建構函式a在b裡執行一遍,不過這個辦法只能繼承建構函式內的方法和屬性,不能繼承原型prototype的屬性!

var a = function

(id);

var b = function

(id);

同時用類式繼承去繼承父類的原型,建構函式式繼承去繼承父類的構造方法

var a = function

();a.prototype.name = function

();var b = function

();b.prototype = new a();

js的36個設計模式 建立型模式

function fn id,txt if id b return o var fa new fn a test fa.show 通過引數,返回需要的例項物件 var factory function type,con else factory.prototype b function con va...

js的36個設計模式 技巧型模式

通過return this,讓函式物件可以鏈式呼叫。function fn this.b function fn.a b dom div 對後新增到dom裡的元素的繫結事件,可以委託給父元素dom物件處理 var dom document.getelementbyid dom dom.onclick...

1 設計模式之前奏

一 設計模式的分類 總體來說設計模式分為三大類 建立型模式 共五種 工廠方法模式 抽象工廠模式 單例模式 建造者模式 原型模式。結構型模式 共七種 介面卡模式 裝飾器模式 模式 外觀模式 橋接模式 組合模式 享元模式。行為型模式 共十一種 策略模式 模板方法模式 觀察者模式 迭代子模式 責任鏈模式 ...