2012-09-17 82 views
2

最近我一直在閱讀關於javascript模式,以及如何使用模塊模式來避免全局性。當我看d3.js hierarchy layout源代碼時,我不確定下面是否是故意的。D3中的Javascript模塊模式

d3.layout.hierarchy正在使用模塊模式,但最後,我看到了很多方法,我猜它只適用於佈局及其派生對象(分區,樹..)。

d3_layout_hierarchyRebind 
d3_layout_hierarchyChildren 
d3_layout_hierarchyValue 
.. 

這是故意的,還是應該在模塊中捕獲?

回答

5

當通過makefile構建庫時,這些方法全部被封裝在包裝代碼的匿名函數中(請參閱start.jsend.js)。所以它們在最終建成的圖書館中都不是全球性的。這是一個設計選項,允許將庫輕鬆拆分爲多個文件,而無需爲每個文件分別設置匿名函數包裝(如require.js-樣式的模塊)。

+0

非常感謝你幫助我理解它。 – bsr

+0

很好的回答...! – VividD