JS构造函数模式

JS Constructor pattern?

本文关键字:模式 构造函数 JS      更新时间:2023-09-26

我已经拿起了一个项目,所有的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();

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

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

如果这段代码只用于处理事件,那么使用构造函数就没有意义了。

可以使用事件委托来完成。美元(的身体)。on('eventType Exp:click,keypress etc','targetElement',callbackFunction);

页脚旁边。初始化(在这里传递参数)而不是在函数

中创建$elements对象字面值