为了账号安全,请及时绑定邮箱和手机立即绑定

关于js不同写法重用的问题,求助!!!!!

关于js不同写法重用的问题,求助!!!!!

ITMISS 2018-08-06 09:08:32
<div class="box"></div><div class="box2"></div>写法1:写法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'));如上两种写法,在操作多个元素的时候,第二种不会有冲突,因为每次都是不同的实例,但是第一种就会冲突,请问有什么好的方法解救第一种写法吗?(也就是让第一种写法里面的模块调用每次也变成不同的实例),大家好,我是楼主,第一种写法我修改了一下,请问创造者模式还是凑效吗?
查看完整描述

1 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

第一种方式可以改用建造者模式
第二种方法是普通的创建类的实例

var module = {    buildModule: function(el) {        
        var configMap = {};        var stateMap  = {};        
        var clearLocalStorage = function() {
        };        
        var saveLocalStorage = function() {
        };        
        var loadLocalStorage = function() {
        };    
        var initModule = function() {            module.el = el; // 实例属性的例子,不会和其它实例冲突
        };        
        var module = {            // 想导出的方法
            clearLocalStorage: clearLocalStorage,            saveLocalStorage: saveLocalStorage,            loadLocalStorage: loadLocalStorage,
        };
        
        initModule(); // 如果不需要在别处调用,也可不要 initModule 函数,把代码直接放在这里
        
        return module;
    }
};var module1 = module.buildModule($('.box'));var module2 = module.buildModule($('.box2'));


查看完整回答
反对 回复 2018-09-19
  • 1 回答
  • 0 关注
  • 601 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信