D3中的Javascript模块模式

bsr*_*bsr 2 javascript layout design-patterns hierarchy d3.js

最近我一直在阅读有关javascript模式,以及如何使用模块模式来避免全局变量.当我查看d3.js 层次结构布局源代码时,我不确定下面是否有意.

d3.layout.hierarchy 是使用模块模式,但最后,我看到它外面的许多方法,我想这只适用于布局及其派生对象(分区,树..).

d3_layout_hierarchyRebind
d3_layout_hierarchyChildren
d3_layout_hierarchyValue
..
Run Code Online (Sandbox Code Playgroud)

这是故意的,还是应该在模块中捕获?

nra*_*itz 5

当库是通过makefile构建的时,这些方法都包含在包装代码的匿名函数(参见start.jsend.js)中.因此,在最终建成的图书馆中,没有一个是全球性的.这是一种设计选择,允许将库轻松拆分为多个文件,而不需要为每个文件分配匿名函数包装(如require.js -style模块的情况).