猿问

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

<div class="box"></div>
<div class="box2"></div>

写法1:

https://img4.mukewang.com/5ba208020001d0b402630265.jpg

写法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'));

如上两种写法,在操作多个元素的时候,第二种不会有冲突,因为每次都是不同的实例,但是第一种就会冲突,请问有什么好的方法解救第一种写法吗?(也就是让第一种写法里面的模块调用每次也变成不同的实例),大家好,我是楼主,第一种写法我修改了一下,请问创造者模式还是凑效吗?


ITMISS
浏览 602回答 1
1回答

有只小跳蛙

第一种方式可以改用建造者模式第二种方法是普通的创建类的实例var&nbsp;module&nbsp;=&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;buildModule:&nbsp;function(el)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;configMap&nbsp;=&nbsp;{};&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;stateMap&nbsp;&nbsp;=&nbsp;{};&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;clearLocalStorage&nbsp;=&nbsp;function()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;saveLocalStorage&nbsp;=&nbsp;function()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;loadLocalStorage&nbsp;=&nbsp;function()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;initModule&nbsp;=&nbsp;function()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;module.el&nbsp;=&nbsp;el;&nbsp;//&nbsp;实例属性的例子,不会和其它实例冲突 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;module&nbsp;=&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;想导出的方法 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clearLocalStorage:&nbsp;clearLocalStorage,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;saveLocalStorage:&nbsp;saveLocalStorage,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loadLocalStorage:&nbsp;loadLocalStorage, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;initModule();&nbsp;//&nbsp;如果不需要在别处调用,也可不要&nbsp;initModule&nbsp;函数,把代码直接放在这里 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;module; &nbsp;&nbsp;&nbsp;&nbsp;} };var&nbsp;module1&nbsp;=&nbsp;module.buildModule($('.box'));var&nbsp;module2&nbsp;=&nbsp;module.buildModule($('.box2'));
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答