什么是單例模式跃惫,它的基本形式是怎樣的靶庙?
- 保證一個類只存在一個實例對象
- 先判斷實例是否存在问畅,如果存在就直接返回,如果不存在就創(chuàng)建了在返回
- 單例作為一個命名空間的提供者,從全局命名空間里提供唯一的訪問點來訪問該對象
單例模式的作用按声?
- 模塊間的通信
- 系統(tǒng)中某個類的對象只能存在一個
- 保護自己的屬性和方法
使用單例模式應該注意的事項膳犹?
- 注意閉包會造成內存泄漏,在使用完成之后應該銷毀無用變量
- 注意this關鍵字的使用
下面是兩個簡單的單例模式的例子:
<a id="btn" href="javascript:void(0)">按鈕</a>
<script>
var getObjColor={
init:function(color){
this.render(color);
this.bind();
}
render:function(color){
var me=this;//存儲this對象
me.btn=$("#btn");
if(color){
this.color=color;
}else{
this.color="red";
}
}
bind:function(){
var me=this;
me.btn.click(function(){
me.getColor();
})
}
getColor:function(){
var me=this;
console.log(me.color);
}
}
getObjColor.init("blue");//初始化,每次點擊按鈕就會打印出blue
</script>
getObjColor是唯一的一個對象签则,只能通過這個點來訪問到該對象须床,其中的變量和方法都是局部的變量和方法,只能在對象內部被訪問
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者