2012-02-03 3 views
1

Я новичок в мире js, это действительно заставляет меня смутить, вчера я начал сотрудничать с underscore.js в своем коде, поэтому я начинаю чтобы попробовать в среде REPL, я решил использовать консоль Node, я придумал var _ = require (./underscore.js), тогда все работает нормально.В чем разница между использованием require в консоли узла и использованием тега script в html

Сегодня я пытаюсь встроить его в html с помощью тега <script>, кажется, мне не нужно вручную var _ = underscore, объект _ уже есть.

кто-то может объяснить, почему и как использовать НПМ для установки подчеркивания в глобальном масштабе и требуют его без указания местоположения файла (например, рубин требуется модуль)

ответ

2

Основное отличие заключается в том, что с помощью тега сценария добавляет все глобальные привязки от области действия файла до глобальной области, общей для всего код на странице. Когда вы пишете JavaScript на веб-сайте, это похоже на то, что все разные сценарии были в одном файле.

Узел требует, с другой стороны, гораздо более разумно не заполнять глобальный масштаб таким образом. Вместо этого он возвращает объект, который содержит все, экспортированные модулем; это в основном пространство имен модуля. Вот почему вы должны сделать _ = require('./underscore.js'). Это лучше, потому что вам не нужно беспокоиться о конфликтах глобальных переменных разных файлов.

+0

очень ясно, спасибо – mko