2012-02-03 71 views
1

我是js世界的新手,這真的讓我感到困惑,昨天我開始在我的代碼中合作underscore.js,所以我開始在REPL環境中嘗試它,我選擇使用節點控制檯,我想出了var _ = require (./underscore.js),然後一切正常。在節點控制檯中使用require和在html中使用script標記有什麼區別

今天我試着用<script>標籤嵌入到html中,看來我不需要手動var _ = underscore,對象_已經在那裏了。

有人能解釋爲什麼,以及如何使用NPM在全球範圍內安裝下劃線,並要求它沒有指定文件位置(如紅寶石要求模塊)

回答

2

的主要區別是,使用腳本標籤將所有的全局綁定的文件範圍到全球共享範圍全部頁面上的代碼。當您在網站上編寫JavaScript時,就好像所有不同的腳本都在一個文件中一樣。

另一方面,節點的要求更合理地不會以這種方式填充全局範圍。相反,它會返回一個包含模塊導出的所有內容的對象;這基本上是模塊的命名空間。這就是爲什麼你必須做_ = require('./underscore.js')。這更好,因爲你不必擔心不同文件的全局變量衝突。

+0

很清楚,謝謝 – mko 2012-02-04 10:47:09

相關問題