2013-08-14 5 views
1

저는 간단한 HTML5 JS 게임을 만들고 있습니다. 자바 스크립트 파일이 거의 1500 줄에 이르렀고 천천히 관리하기가 점점 어려워지고 있습니다. 일부 스크립트를 "클래스"로 분할하는 간단한 방법이 있는데, 이는 파일을 분리하여 모든 "클래스"파일을 하나의 "기본"파일로 가져 오는 것을 의미합니까?자바 스크립트 파일을 다른 자바 스크립트 파일로 가져 오기

그래서 예를 들어 나는이

File1.js

function pointInRect(pnt_x, pnt_y, rect_x, rect_y, rect_w, rect_h) 
{ 
if ((pnt_x >= rect_x) && (pnt_x <= rect_x + rect_w - 1)) 
{ 
    if ((pnt_y >= rect_y) && (pnt_y <= rect_y + rect_h - 1)) 
    {return true;} 
} 
return false; 
} 

File2.js이

if(pointInRect(1,1,1,1,1,1) == true){ console.log("Yo, there be a collision");} 

가 어떻게 파일 2 가져 오기 파일 1을받을 수 있도록 방법을 사용합니까 있나요? 누군가가 나를 도와 줄 수 있다면 정말 대단한 JS 파일을 관리하는 데 도움이 될 것입니다.

캔버스 것은

+0

아니요. HTML 마크 업에 모든 파일을 개별적으로 포함 시키거나 서버 측에서 파일을 연결해야합니다. 후자를 수행 할 수있는 빌드 도구가 많이 있습니다. – Bergi

+1

기본적으로 코드를 html 파일의 올바른 순서 (종속성 기반)로 참조하는 것보다 여러 파일로 분할합니다. 또는 http://requirejs.org/docs/start.html을보십시오. –

+0

파일 1에 작성한 내용은 전역 범위에서 작성하고 file1 다음에 file2를 포함하는 한 파일 2에서 액세스 할 수 있습니다. –

답변

4

그냥 HTML의 스크립트 태그로 파일을 추가, 그들은 순서대로 실행됩니다.

<script type="text/javascript" src="file1.js"> 
<script type="text/javascript" src="file2.js"> 
+0

그게 쉬운 일이라면 나는 성가 시게 될 것이다 : D, 내가 곧 검사 할 것이다. – Canvas

+0

@Jeevan Jose이 위에 말한 것과 조심해야한다. –

+0

그래, 작동한다. 나는 주류보다 먼저 모든 자산을 적재해야한다. 너는 말하고있다. 대단한 환호가 정말 도움이 될 것입니다. – Canvas

0

다른 사람들은 코드를 여러 파일로 나누는 방법을 지적했습니다.


//class1.js 
MYNS = MYNS | {}; 
MYNS.Class1 = {}; 
MYNS.Class1.prototype.pointInRect = function(){ 
    //magic here 
}; 

//class2.js 
MYNS = MYNS | {}; 
MYNS.Class2 = {}; 
MYNS.Class2.prototype.anotherMethod = function(){ 
    //more magic 
}; 

: 당신은 그 파일 안에 코드를 구성 할 경우, 사용이 오히려 지구보다 변수를 범위, 그리고 클래스/객체에 대해 잘 알고, 당신은 이런 식으로 뭔가를 시도 할 수 있습니다
//main.html 
<script type="text/javascript" src="class1.js"> 
<script type="text/javascript" src="class2.js"> 

var class1 = new MyNS.Class1(); 
var class2 = new MyNS.Class2(); 

class1.pointInRect(); 
class2.anotherMethod(); 

하지만 JavaScript는 전통적인 의미에서 OO가 아니며 실제 수업이 아닙니다. 대신 JS 코드를 클래스 및 객체와 유사한 것으로 구성하는 방법입니다. 당신이 상속 등을 닮은 것을하려고하면, 요구되는 복잡성과 이해 수준이 매우 빨리 올라갑니다.

관련 문제