目前我正在尝试通过更多关注结构和编写来编写更好的代码。图案。出于兴趣,我开始查看其他人的代码,看看他们是如何构建它的。我遇到的一个“模式”是这样的:
function foo(a, b) {
function bar() {
// do something with a & b
}
bar();
// event handler, e.g. resize
$(window).on('resize', bar);
}
$(document).ready(function () {
foo(a, b);
});
因此定义了一个函数,例如将两个值传递给该函数。在该函数中,定义了另一个函数,其中使用两个值完成某些操作。然后将第二个函数附加到事件处理程序(resize事件只是一个示例)。最后,当DOM准备就绪时会触发外部函数。
为什么人们会像这样编写代码,只是为了保持文档就绪功能的美观和干净?或者阻止人们将功能绑定到另一个事件?也许它与变量范围有关?
另外,为什么在附加事件处理程序之前触发bar
,这是某种设置值的init,然后只在某个事件发生时调整它们吗?
答案 0 :(得分:1)
是的,对于DRY,图像示例:功能栏例如设置宽度或计算一些其他元素的宽度,并且他是立即调用的,用于计算初始的宽度。但是当窗口调整大小时你必须重新计算,所以你将该函数绑定到事件调整大小。
函数中put函数的好例子是Module模式: link to good free ebook to learn javascript patterns