写法1:
var module = (function(){
var
configMap = {},
stateMap = {},
clearLocalStorage,
saveLocalStorage,
loadLocalStorage,
bind,
setJqueryMap,
initModule
;
clearLocalStorage = function(){
};
saveLocalStorage = function(){
};
loadLocalStorage = function(){
};
bind = function(){
};
setJqueryMap = function(){
};
initModule = function(){
};
return { initModule : initModule };
})();
module.initModule($('.box'));
module.initModule($('.box2'));
写法2:
function AverageClass(){
}
AverageClass.prototype = {
constructor : AverageClass,
init : function(){},
something : function(){
}
};
var ager = new AverageClass();
var ager2 = new AverageClass();
ager.init($('.box'));
ager2.init($('.box2'));
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
第一种方式可以改用建造者模式
第二种方法是普通的创建类的实例
没有。因为第一个
module就是一个对象啊,而第二种写法里面是new了两个不同的对象。要想不冲突,肯定是要在不同的对象上操作的。第一种写法如果想要不冲突,就要保证
configMap、stateMap是常量或公共变量,否则你要把各个调用者需要的变量隔离开,写到initModule内部,可以来个闭包。