JS构造函数模式
JS Constructor pattern?
我已经拿起了一个项目,所有的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);
页脚旁边。初始化(在这里传递参数)而不是在函数
相关文章:
- JavaScript模块模式-如何在使用对象/函数之前激发构造函数/init函数
- 日志记录时避免 Promise 构造函数反模式
- 用于初始化对象的编码模式 - 构造函数(新)与 Object.create()(Crockford)
- 如何在 Crockford 的新构造函数模式中共享“构造函数”功能
- 构造函数模式和原型模式之间的区别
- 使用构造函数显示模块模式
- IIFE创建模式-但如何支持构造函数参数
- json模式的构造函数
- AngularJS设计模式:我应该使用工厂来创建构造函数吗
- 为什么实用模块&构造函数模式将其作为全局接受
- 使用这种JavaScript编码模式来定义构造函数的优点是什么
- 使用RegExp构造函数的具有可变模式的JavaScript正则表达式
- 带有私有变量的JavaScript构造函数模式
- JavaScript 中构造函数的静态方法模式
- 模块模式中的构造函数
- JavaScript 构造函数模式
- 构造函数模式下的自执行函数
- 理解构造函数调用模式中的“this”
- 为什么我的JavaScript构造函数模式不能工作?
- 如何使用promise .all来避免promise构造函数反模式