2011-03-11 4 views
7

내 jquery 코드는 2 개의 파일로 나누어집니다. 2 파일의 코드간에 js 함수를 공유합니다.

파일 중 하나에서, 나는 함수 호출 라인은 같은 파일에있는 경우에만 작동이 함수를 호출

function something(input){ 
    //does something 
} 

을 정의합니다. 하지만 두 파일에서 모두 호출해야합니다.

두 번째 파일로 기능을 전환하면 다시 동일한 문제가 발생합니다. 동일한 파일의 코드는 읽을 수 있지만 다른 파일의 코드는 읽을 수 없습니다.

답변

9

장소 $(document).ready(function() { });의 밖에서 기능은 그들에게 전역 범위를 제공합니다. 내부에 배치 된 것은 외부에서 액세스 할 수 없습니다.

그러면 네임 스페이스를 사용하여 함수를 캡슐화 할 수 있습니다. 이렇게하면 전역 네임 스페이스의 혼란을 피할 수 있습니다.

4

네임 스페이스 개체을 만들어야 파일간에 공유 할 수 있습니다.

fileA.js

window.mynamespace = window.mynamespace || {}; 

mynamespace.something = function(input) { 
    // do something 
}; 

fileB.js

window.mynamespace = window.mynamespace || {}; 

mynamespace.something(); 
+0

저는 JQuery를 사용하고 있으며 각 파일은 다음과 같이 시작됩니다. 네임 스페이스는 어디에 두어야합니까? 문서의 외부 또는 내부 준비? ' – sami

+0

@sami : 개체를 설정 또는 수신하는 것은 각 파일에서 가장 먼저 일어나는 일이어야합니다. 또한 이것은 단순화 된 버전입니다. 이 문제에 대해 훨씬 더 복잡한 솔루션을 만들 수 있습니다. – jAndy

+0

나는 이것이 최선의 해결책이라는 데 동의한다. 또한 자바 스크립트 ([이 페이지 참조] (http://hatayservices.com/books/Javascript/JavaScriptStatements.html#stmtexport))에서 내보내기/가져 오기를 사용하는 실험적 방법이 있지만 전역/개체 (예 : 창)에 저장하는 방법이 있습니다. 가장 좋은 방법은 ... – Tokimon

관련 문제