2011-08-17 6 views
0

다음 구조를 가지고 있습니다 :Node.js에서 상속 가능한 정적 메서드입니까?

첫 번째 파일 :

Base = function() { 
}; 

Base.something = function() { 
    return "bla"; 
}; 

if (typeof module !== 'undefined' && "exports" in module) { 
    module.exports = Base; 
} 

두 번째 파일 :

var 
    util = require('util'), 
    Base = require('./base.js'); 

FooBar = function() { 
}; 
util.inherits(FooBar, Base); 

그러나 FooBar.something은 정의되지 않았습니다. node.js에서 정적 메서드를 상속하려면 어떻게해야합니까?

+0

친애하는 downvoter, 당신은 당신의 투표를 설명 친절 친절 하시겠습니까? –

답변

3

util.inherits는 프로토 타입의 생성자 함수에서 작동합니다.

당신은 일반적으로을 확장 라고 간단한 믹스 인을 사용해야합니다. 기본적으로 하나의 (또는 많은) 객체의 모든 속성을 "대상"객체로 복사합니다. (이 경우, 귀하의 생성자 함수) 내가 같은를 달성하기 위해 하나의 라이브러리를 사용하기 때문

당신이 underscore.js를 사용하는 경우, 당신은 내가 더 잘있는 다른 해결책을 발견했습니다 _.extend(FooBar, Base);

+0

밑줄에 아무런 문제가 없으며 이미 사용하고 있습니다. –

+0

sweet,'_.extend (FooBar, Base);를 사용하는 것보다 –

+0

예, 감사합니다. 그것이 내가 마침내 한 일입니다. –

0

사용할 수 있습니다 기능.

이 라이브러리는 Felix Geisendörfer의 oop이며 그는 nodeguide.com에 자습서를 작성했지만 다소 오래되었습니다. 하지만, 여기에 같은 문제에 대한 작업 예입니다

var 
    oop = require('oop'), 

    Base = require('./base.js'); 

FooBar = function() { 
    oop.mixin(this, Base); 
}; 
oop.extend(FooBar, Base); 
0

이 자료에서 정적 함수를 내보내려면, 추가

module.exports = Base;

Base.js. 내부