jQuery - 代码结构 - 函数内部的函数

时间:2013-10-07 21:24:52

标签: javascript jquery function design-patterns structure

目前我正在尝试通过更多关注结构和编写来编写更好的代码。图案。出于兴趣,我开始查看其他人的代码,看看他们是如何构建它的。我遇到的一个“模式”是这样的:

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,然后只在某个事件发生时调整它们吗?

1 个答案:

答案 0 :(得分:1)

是的,对于DRY,图像示例:功能栏例如设置宽度或计算一些其他元素的宽度,并且他是立即调用的,用于计算初始的宽度。但是当窗口调整大小时你必须重新计算,所以你将该函数绑定到事件调整大小。

函数中put函数的好例子是Module模式: link to good free ebook to learn javascript patterns