JS构造函数模式?

时间:2015-08-14 09:44:46

标签: javascript jquery

我选择了一个项目,所有的js文件都写成下面的模块,然后连成一个缩小的文件。

写这样的js文件有什么好处吗?例如,在项目中它没有使用多个“页脚”'对象如此肯定没有必要抽象它,应该只是自我调用函数?

function Footer(){
   var $elements = {
       slideButton  : $('.js-footer-slide-btn'),
       slideBlock   : $('.js-footer-slide-block')
   };

   this.initialise = function(){
       $elements.slideButton.click(function(){
           $(this).toggleClass('active').next().stop().slideToggle();
       });
   };
}

var footer = new Footer();
    footer.initialise();

2 个答案:

答案 0 :(得分:1)

您可能忽略的一个优点是您不会污染全球空间。因此,您可以为每个对象编写许多initialise()方法,而不会在“模块”之间或与其他外部JS库之间发生命名冲突。

答案 1 :(得分:0)

Javascript中没有类但它有一个构造函数,在这里你使用它的构造函数创建一个新对象。因此,当使用new调用构造函数时1)创建一个空对象,继承函数的原型2)属性&将添加将被此引用的方法。

如果此片段仅用于处理事件,则无需使用构造函数执行此操作。

可以使用事件委派来完成。 $(' body')。on(' eventType Exp:点击,按键等',' targetElement',callbackFunction);

除了footer.initialize(在此传递参数),而不是在函数内创建$ elements对象文字