var foo2=(function (){
var so = 'cool';
var an = [1,2,3];
function doSo() {
console.log(so);
}
function doAn() {
console.log(an.join("!"));
}
return {
doSo:doSo,
doAn:doAn
};
})();
var foo = foo2;
var aa = foo2;
foo.doAn();
aa.doSo();
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
所谓单例模式,就是说这个东西只会有一个,你没有办法生成新的具备同样结构的东西。
保证系统中一个类只有一个实例。
你这里foo和aa用的都是同一个foo2变量。以后不管你怎么操作,都只会操作foo2这个变量。
给个链接
这2个对象相等,哪里创建了新的实例???
这里使用闭包,返回一个对象,一直保持着对doSo、doAn的引用,foo2每次赋值都是同一个引用对象。
类似于变量 foo 和 aa 都指向创建foo2时的内存地址,因此是一个实例。foo === aa // result: true