把描述同一個(gè)對(duì)象的屬性和方法放在一個(gè)內(nèi)存空間下,起到了分組作用,這樣不同事物之間的屬性即使屬相名相同,相互也不會(huì)發(fā)生沖突.我們把這種分組編寫代碼的模式叫.做"單例模式".
例如:var person1 = { var person2 = {
name: '李四', name: '張三',
age: '17' age: '18'
} }
在單例模式下,person1和person2叫做"命名空間"
單例模式是項(xiàng)目開發(fā)中經(jīng)常使用的一種模式,因?yàn)樵陧?xiàng)目開發(fā)中我們可以使用單例模式來進(jìn)行"模塊式開發(fā)".
模塊式開發(fā):對(duì)于一個(gè)比較大的項(xiàng)目來說,需要多人協(xié)作進(jìn)行開發(fā),我們會(huì)根據(jù)當(dāng)前項(xiàng)目的需求劃分為幾個(gè)功能模塊,每人負(fù)責(zé)一部分,同時(shí)進(jìn)行開發(fā),最后把每個(gè)人的代碼進(jìn)行合并.
例如:
//公共模塊->一般由一個(gè)項(xiàng)目的大神來寫
var utils = {
select:function(){
}
} ;
//頁(yè)卡模塊中的change->實(shí)現(xiàn)選項(xiàng)卡切換
var tabRender = {
change:function(){
// 調(diào)用公共模塊的方法
utils.selector();
}
} ;
//搜索模塊中的change->搜索內(nèi)容變化處理
var searchRender = {
change:function(){
// 自身中調(diào)用自己的方法,一般使用this
this.change()
}
} ;
單例模式的缺點(diǎn):不能實(shí)現(xiàn)批量生產(chǎn) ,復(fù)用性差,冗余度高,可擴(kuò)展性差