js開發模式

2021-10-07 20:42:19 字數 2639 閱讀 2663

1.工廠模式

使用函式 直接建立物件返回物件

避免多次建立物件

//建立乙個物件

function factory(name,***,age,job);

obj.name=name;

obj.***=***;

obj.age=age;

obj.job=job;

obj.eat=function ()

return obj;}

console.log(factory(「張三」,「男」,18,「學生」));

console.log(factory(「李四」,「男」,22,「廚子」));*/

//使用者許可權的檢測

function factory(role)

else

}//使用原型物件 寫規則對應的許可權方法

2.建構函式模式

把程式抽象成方法

抽象資料分頁

function page();

this.getnowdata=function ();

this.init=function ()

}var page=new page();

page.init();

3.原型模式

原型物件上的屬性和方法是共享的

空物件獲取屬性是 自身沒有改屬性 則原型物件上的屬性充當預設值

設定空物件屬性時 是給自己設定屬性 不會修改原型物件上的屬性 應為原型物件上的屬性是共享的

缺點: 是原型物件屬性方法共享

可以搭配 函式構造模式 + 原型模式 混合模式

function person()

person.prototype =

}//建立人

var c1 = new person();

c1.name = 「張三」

console.log(c1.sleep(「打呼嚕」));

var c2 = new person();

console.log(c2.sleep(「不踏實」));

混和模式

function animal(n, c)

animal.prototype = }

var cat = new animal(「小花」, 「花色」);

console.log(cat.eat(「魚」));

var dog = new animal(「小黑」, 「黑色」);

console.log(dog.eat(「骨頭」));

4.單例模式

乙個類提供乙個例項,並且暴漏出乙個全域性訪問點(閉包)

簡單的單例

function person(name)

person.prototype.getname = function ()

//自執行 執行函式 返回閉包的物件

var getobject = (function ()

//該函式的返回值物件 返回乙個單獨的物件

return instance;

}})();

//呼叫單例模式

console.log(getobject(「張三」).getname());//張三

console.log(getobject(「李四」).getname());//張三

console.log(getobject(「王五」).getname());//張三

console.log(getinstance(function () )().getname());

5.策略模式

var levelbalble =

//策略的使用

var levelscore = ,

a: function () ,

b: function () ,

c: function () ,

d: function ()

}//計算得分情況

function getscore(score, level)

console.log(getscore(90, 「s」));//98

console.log(getscore(80, 「a」));//86

console.log(getscore(70, 「b」));//74

console.log(getscore(60, 「c」));//62

console.log(getscore(50, 「d」));//50

6.訂閱模式

策略模式 js設計模式與開發實踐 7

根據表現水平,來決定年終獎 var calculatebonus function performancelevel,salary if performancelevel a if performancelevel b console.log calculatebonus b 20000 conso...

支援hybrid模式開發的開源js框架

本文所提供的開源js框架都可以支援這部分開發平台 在過去的兩年裡,觸屏裝置飛速增長。ios 和 android 裝置讓開發者和設計師開始重新思考他們的web應用,以提供更好的觸屏體驗。相對於本地應用,移動web應用有很多優勢,但也有很多設計和開發上的挑戰。這裡列出了一系列有用的框架來幫助基於 htm...

JS中常用的開發模式和思想

js中常用的開發模式和思想var obj function factory name,age obj.name name obj.age age obj.introduce function return obj 建構函式模式 建立乙個自定義類 與工廠模式的區別 1.用new執行 2.屬性名首字母建...