我选择了一个项目,所有的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();
答案 0 :(得分:1)
您可能忽略的一个优点是您不会污染全球空间。因此,您可以为每个对象编写许多initialise()
方法,而不会在“模块”之间或与其他外部JS库之间发生命名冲突。
答案 1 :(得分:0)
Javascript中没有类但它有一个构造函数,在这里你使用它的构造函数创建一个新对象。因此,当使用new调用构造函数时1)创建一个空对象,继承函数的原型2)属性&将添加将被此引用的方法。
如果此片段仅用于处理事件,则无需使用构造函数执行此操作。
可以使用事件委派来完成。 $(' body')。on(' eventType Exp:点击,按键等',' targetElement',callbackFunction);
除了footer.initialize(在此传递参数),而不是在函数内创建$ elements对象文字