재미있는 "레벨 업 코딩"사이트 인 Exercism.io에서 코드 예제와 Jasmine 테스트를 위해 CommonJS 스타일 모듈을 사용하고 있습니다. 필자는 모듈을 다루지 않으려 고하는 번거 로움을 항상 생각해 왔지만 이러한 한 입 크기의 청크에서는 단일 페이지 응용 프로그램에서 사용하기에 매우 유용 할 수 있습니다. 그래서 저는 CommonJS 모듈 사용에 대한 좋은 샘플을 찾기 위해 Github을 검색해 왔으며, 여전히 주요 패턴이 무엇인지, 어떻게 다른지 자세히 설명하는 것을 찾지 못했습니다.CommonJS 모듈의 패턴?
var HelloWorld = function() {};
HelloWorld.prototype.hello = function() {
return 'Hello, World!'
};
module.exports = HelloWorld;
을하지만, 또 다른 하나는,이
var Bob = function() {
this.hey = function (input) {
input = input.split('');
if (input.indexOf('!') >= 0) {return 'Whoa, chill out!'}
if (input.indexOf('?') >= 0) {return 'Sure.'}
return 'Whatever.'
};
}
module.exports = Bob;
같이 특히 나는 차이가 부모 정의 내부의 함수를 중첩 사이에 무엇인지 궁금 보였다 예를 들어, 내가 제출 한 가지 대답이처럼 보였다 HelloWorld hello()가 프로토 타입을 대신 사용하는 것과 반대로 Bob hey() 함수를 사용하여 완료했습니다.
미안하지만 Bob.hello()는 오타였습니다. 저는 모듈 작성에 익숙하지 않아 Exercism.io의 데모 파일에있는 형식을 사용했습니다. hello() 함수는 Jasmine 스펙에서 처음 인스턴스를 작성하는 데 사용됩니다. var helloWorld = new HelloWorld(); - 실제 fn - helloWorld.hello() –