理解jQuery源代码中过于简单的模块的目的

时间:2016-05-25 13:43:37

标签: javascript jquery

我正在尝试阅读和理解jquery来源github repo进行学习。

在那里,我看到一些过于简单的代码被放入单独的模块中。例如,在here

上说 arr.js

其中仅包含以下代码,

define( function() {
    "use strict";

    return [];
} );

必须有一些有用的东西,因为它在jquery源中。

现在,任何人都可以解释一下定义一个只返回空数组的模块有什么意义吗?

我的意思是模块的概念是将大型复杂代码分解为更小的可重用块和类似的东西。

任何帮助?

提前致谢。

修改。一些澄清

对于唐氏选民和那些认为这个问题是

的人
  

基于意见的问题,因此不适合SO

我正在尝试从一个非常流行的开源库中学习。在那里,我看到了一些我不太清楚的东西。 这可能是一种最佳实践,也可能是一种全面的编码方式。所以我问这个问题是为了更深入地了解/理解代码。这是一个技术问题,所以我在SO问,[如果不在这里,我会问哪里?]。

我没有要求任何人的意见

如果你觉得这个问题被错误地提出来,那么所有人都有权编辑它,请使用它。

2 个答案:

答案 0 :(得分:1)

如果您查看 arr.js 的历史记录,您会看到原始提交将其描述为:

  

AMD-ify jQuery

https://github.com/jquery/jquery/commit/6318ae6ab90d4b450dfadf32ab95fe52ed6331cb

AMD代表异步模块定义。 AMD的目的是在jQuery代码中提供模块化。这是一篇描述目的的好文章:

  

当我们说应用程序是模块化的时,我们通常意味着它是由组成的   存储的一组高度分离的,不同的功能   在模块中。您可能知道,松耦合更容易   通过尽可能删除依赖项来维护应用程序。什么时候   这是有效实施的,很容易看出如何改变   系统的一部分可能影响另一部分。

https://addyosmani.com/writing-modular-js/

答案 1 :(得分:0)

我想强制执行“use strict”。

e.g。

对于这个模块

assertion failed DataType<_Tp>one of the arguments values is out of range (The kernel parameter <degree> must be positive in CVSVM::set_params

在非严格模式下,您可以执行define( function() { "use strict"; return window.document; } );

严格模式是错误

无法指定对象'#'

的只读属性'文档'

或者它可能只是创建小模块的方式,以后更容易重构。