2013-03-13 4 views
1

이 질문을하는 방법을 모르겠지만, 통찰력/정보를 찾고 있습니다.하나의 앱에 여러 개의 자바 스크립트 파일이 있습니다.

내 앱에 여러 개의 JavaScript 파일을 포함하는 경우 페이지/앱에서 모든 JS 코드를 어떻게 볼 수 있습니까? 모든 파일의 모든 JS가 하나의 큰 JS 파일이됩니까

하나의 JS 파일에 변수 foo=true;이 있고 다른 JS 파일에 foo=false이있는 경우 foo의 범위는 무엇입니까? 그것이 스크립트 안에있는 로컬입니까, 아니면 js 코드에서 '모두'볼 수 있습니까?

통찰력을 주셔서 감사합니다.

답변

2

예, 대부분의 경우 가져 오기 순서대로 모든 파일을 연결하여 만든 하나의 파일 인 경우와 같습니다.

의 차이는 :

  • "use strict"; 파일 당 유효합니다 (이것은 현재의 랬)
  • 그것을 JS 개발자가 큰 건물 왜 큰 하나보다 10 개 작은 파일을 가져 오기 위해 브라우저, 훨씬 느리다 응용 프로그램은 일반적으로 프로덕션을 위해 모든 파일을 연결 (종종 축소)합니다.
+0

JavaScript 파일의 순서는 중요합니다. 두 번째 파일에서'foo = true'를 선언하고 첫 번째 파일에서 그것을 참조하려고한다면, 그것을 보지 못할 것입니다. – PlantTheIdea

+0

+1 정확하고 빠른 답변[email protected] 그가 "수입 순서대로"언급했습니다. –

+0

@LifeInTheGrey - 두 번째 파일이 처리 될 때까지 호출되지 않는 함수에서 참조를 시도하지 않는 한 발생합니다. – Quentin

0

스크립트가 공유하는 유일한 것은 전역 범위입니다. 분리 된 부분은 하나의 큰 파일이되지 않습니다.

예를 들어, 당신은이 작업을 수행 할 수 없습니다

<script type="text/javascript"> 
function hello() { 
</script> 
<script type="text/javascript"> 
} 
</script> 

그리고 'use strict'<script> 하나는 그들 모두에 걸쳐 엄격한 모드를 적용하지 않을 것입니다.

0

당신이 var를 사용하지 않고, 하나 개의 파일에 정의하는 경우 :

foo = true;

그것은 전역 변수가 될 것입니다, 그리고 그렇게되면이 두 번째 JS 파일에 액세스 할 수 foo = false

모든 스크립트가 페이지에서 명백하게 정의 된 경우 동일한 전역 네임 스페이스를 공유합니다. 변수에 범위를 만들려면 function으로 묶어야합니다. What is the scope of variables in JavaScript?가 , 그것은

쉽게 여러 개의 자바 스크립트 파일을 처리하고 다른 스크립트 정보를 공유 할 수 있도록하면서, 나는 당신이 RequireJS (http://requirejs.org/)를 시도하는 것이 좋습니다, 최소한의 글로벌 범위를 유지하는 것입니다

:

이 질문에 제공 한 설명을 참조하십시오 JavaScript 파일 및 모듈 로더. 그것은 당신이 가질 수있는 파일 의존성을 처리 할 것이고 비동기 적으로로드 할 것입니다. 또한 전역 범위에 노출하지 않고도 여러 모듈/파일간에 변수를 쉽게 전달할 수 있습니다.

다른 파일/모듈 로더도 있습니다. 참조 : http://www.netmagazine.com/features/essential-javascript-top-five-script-loaders

+0

이것은 실제로 질문이 아닙니다. –

+0

@dystroy 죄송합니다. – sweetamylase

관련 문제