2012-02-03 2 views
1

저는 js 세계에 처음입니다. 어제 혼란 스럽습니다. 어제 나는 코드에 밑줄을 넣기 시작했습니다. REPL 환경에서 시도하기 위해, 나는 노드 콘솔을 사용하기로 결정했다. var _ = require (./underscore.js)을 가지고 왔고, 모든 것이 잘 동작한다.노드 콘솔에서 require를 사용하는 것과 html의 script 태그를 사용하는 것의 차이점은 무엇입니까?

오늘 <script> 태그를 사용하여 html로 삽입하려고합니다. 수동으로하지 않아도됩니다. var _ = underscore, 객체 _이 이미 있습니다.

사람이 설명 할 수있는 이유와 가장 큰 차이점은 스크립트 태그를 사용하는 모든 글로벌 바인딩을 추가하는 것을 (루비가 모듈을 필요로 등)

답변

2

파일의 위치를 ​​지정 세계적으로 밑줄을 설치하는 NPM을 사용하지 않고 그것을 필요로하는 방법 전역 범위에 대한 파일 범위의 범위는 모두 페이지의 코드입니다. 웹 사이트에 자바 스크립트를 작성할 때 마치 모든 다른 스크립트가 하나의 파일에있는 것처럼 보입니다.

노드의 요구는 다른 한편으로 훨씬 더 합리적으로 전역 범위를이 방식으로 채우지 않습니다. 대신, 모듈에서 내 보낸 모든 것을 포함하는 객체를 반환합니다. 이것은 기본적으로 모듈의 네임 스페이스입니다. 그래서 _ = require('./underscore.js')해야합니다. 이것은 서로 다른 파일의 전역 변수가 충돌하는 것에 대해 걱정할 필요가 없기 때문에 더 좋습니다.

+0

매우 명확합니다. 감사합니다. – mko

관련 문제