2
我理解一些proper name-spacing與leaking into the global-scope相關的Module Pattern幫助的問題是如何。CommonJS規範中概述的define()協議對我有什麼幫助?
我也完全看到在CommonJS Specification中概述的require()
協議中規定的資源依賴性管理的價值。
但是,我對AMD define()
函數的用途和用途的好處感到迷惑。
爲定義的CommonJS的簽名是:
define(id?, dependencies?, factory);
此外...
- 我看到人們wrapping their Module Pattern plug-ins with
define()
時 BOTH建立在 全球範圍內的對象。 - 包含正常模塊 Pattern插件的文件也可異步加載 。
起初,它「看起來」還像另一個插件包裝...直到我開始看到人們在模塊模式旁邊使用它。
所以我的問題是:
- 什麼是
define()
協議 在CommonJS的規範 概述給我買? - 難道它更能說服人嗎?
- 是否意味着取代模塊化模式?
- 它以某種方式更快?
- 如果是這樣,爲什麼?
所以......每一個對象被追加到全球定義對象嗎? – 2011-05-19 18:45:44
@PrisonerZERO未附加。你只需調用'define'。定義將通過你的'require'回調傳遞回來。這些對象不存儲在任何地方,它只是消息傳遞。儘管它們被緩存在某個地方。但不公開提供。 – Raynos 2011-05-19 18:47:05
因爲它不存儲在任何地方......我猜你應該只使用這種模式,當它不是一個持久對象,你想運行一次。 – 2011-05-23 12:36:52