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.屬性名首字母建...