Jestem nowy w świecie js, to naprawdę mnie uczyniłozdezorientowany, wczoraj zacząłem współpracować z underscore.js w swoim kodzie, więc zaczynam próbować w środowisku REPL, wybieram konsolę Node, wymyśliłem var _ = require (./underscore.js)
, to wszystko działa dobrze.
Dziś próbuję osadzić go w html za pomocą <script>
tag, wygląda na to, że nie muszę ręcznie var _ = underscore
obiekt _
już tam jest.
ktoś może wyjaśnić, dlaczego i jak używać npm do globalnej instalacji podkreślenia i wymagać tego bez określania lokalizacji pliku (np. ruby wymaga modułu)
Odpowiedzi:
2 dla odpowiedzi № 1Główną różnicą jest to, że użycie tagu skryptu dodaje wszystkie globalne powiązania zakresu pliku do zasięgu globalnego współużytkowanego przez wszystko kod na stronie. Kiedy piszesz JavaScript na stronie internetowej, wygląda to tak, jakby wszystkie różne skrypty znajdowały się w jednym pliku.
Z drugiej strony, węzły wymagają znacznie więcejrozsądnie nie wypełnia w ten sposób zakresu globalnego. Zamiast tego zwraca obiekt, który zawiera wszystko, co wyeksportował moduł; jest to w zasadzie przestrzeń nazw modułu. Dlatego musisz to zrobić _ = require("./underscore.js")
. Jest to lepsze, ponieważ nie musisz martwić się o konflikty zmiennych globalnych różnych plików.