2012-01-16 4 views
2

저는 오랫동안 C# 및 OO 언어로 작업 한 자바 스크립트로 시작했습니다.자바를 깨끗하게 유지하는 방법

나는 다음과 같은 파일에 내 코드를 넣어하고 있음을 발견하고,

database.js 
sync.js 
date.js 

그리고 어디에서 호출 할 수있는 공공 기능의 매우 절차 적, 기본적으로 그냥 무리를 느끼고있다. 자바 스크립트를 객체 지향적으로 만들 수 있습니까? 아니면 이것보다 더 깔끔합니까?

나에게는 이것이 매우 커지고 지저분 해지기 쉬운 것처럼 보입니다.

+0

첫 번째 질문은 당신이 게시 한 js 파일 모두 공통점이 없지만 별도의 파일에 문제가없는 것입니다. 다양한 기능을 재사용하는 경우에만 파일을 결합합니다. 그리고 물론 js는 더 많은 객체 지향적 일 수 있습니다. js를 사용하여 'var c = new Customer();'객체에 대한 작업을 수행하거나 js를 사용하여 페이지의 유효성을 검사하고 있습니까? 거기에는 큰 차이가 있습니다. – JonH

답변

6

자바 스크립트는 "클래식"객체 지향을 사용하는 방식으로 사용하지 않고 "프로토 타입"이라고 표시된 다른 객체 지향 체계를 사용합니다. 나는 언어의 강점을 최대한 활용하기 위해이 글을 읽으시기 바랍니다.

http://javascript.crockford.com/prototypal.html

3

물론 그것은 당신이 OO 다음 OO를 사용하려는 경우 modul8 또는

browserify 그런 다음 물론 그렇게

// date.js 
var dateUtils = { 
    ... 
}; 

module.exports = dateUtils; 

// database.js 

var database = module.exports = { 
    ... 
}; 

// sync.js 

var sync = module.exports = { 
    ... 
} 

// main.js 

var sync = require("./sync.js"), 
    database = require("./database.js"), 
    date = require("./date.js"); 

/* main body of code */ 

처럼 코드를 다시 작성과 같은 모듈 빌드를 사용할 수 있습니다. 자바 스크립트에는 프로토 타입이 있는데, 나는 읽을만한 가치가있는 a series about prototypical OO을 가지고있다.

다음과 같은 gist은 OO에 대한 좋은 패턴을 보여줍니다.

+0

OO JS에 대한 위대한 소식. 귀하의 블로그에서' go away '에 +1하십시오! 나는 똑같은 일을한다. 당신의 doctype은 어디에 있습니까? – ThinkingStiff

+0

@ThinkingStiff 나는 그것을 잊었다. [DOCTYPE, 그것의 버그] (https://github.com/Raynos/trinity/issues/5) – Raynos

관련 문제