今天进一步了解了js单例模式,下面说一下我的理解。
在实际问题中,我们在js文件中声明过多的函数和全局变量,或者导入多个js文件,都可能导致全局变量的命名冲突问题。
单例模式要求类只能实例化一次并且提供实例的全局接口。通过单例模式,我们可以为某些方法和属性规划一个命名空间来解决问题。
比较简单的单例模式:
var test = {
a: 1,
b: 2,
demo: function() {
alert(a)
}
}
较为常见的时下面的情况:
function a(){
}
function b(){
}
function c(){
} //函数过多就有可能造成冲突
可以通过以下方式解决:
var test = {
testa:1,
testb:2,
meta:function (){
}
metb:function (){
}
metc:function() {
}
}
这样就可以通过对象test来访问对象内部的属性和方法。
当导入多个js文件时,也可以通过创建多个不同的对象来将各自的变量和方法进行“隔离”,避免冲突。