什么是单例模式?
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
var SingleTon=(function(){
var instance;
var Student=function(){
this.name="yqy";
this.age=23;
}
return {
getInstance:function () {
if(!instance){
instance =new Student();
}
return instance;
}
};
})();
var s1=new SingleTon.getInstance();
var s2=new SingleTon.getInstance();
console.log("此时创建的Student是否是同一个Student:"+(s1===s2));
从代码中可以看出,Student是SingleTon私有的,用户无法直接创建这个对象,只能通过SingleTon返回实例,在SingleTon中只new 了一次,返回的会是同一个实例。
ps:===和==的区别
var i=1;
var j="1";
var k=1;
console.log((i==j)+";"+(i===j));//true;false
console.log((i!=j)+";"+(i!==j));//false;true
console.log((i==k)+";"+(i===k));//true;true
console.log((i!=k)+";"+(i!==k));//false;false
===和==不同在于,===是要比较类型的,然后再比较值,==不同类型的时候会先转换然后再比较值。
本文介绍了单例模式的概念及其实现方式,通过JavaScript示例展示了如何确保一个类只有一个实例,并提供了全局访问点。同时,还对比了===与==运算符的区别。

被折叠的 条评论
为什么被折叠?



