비슷한 기능을 가진 모듈을 만드는 동안 내가 놓칠 수있는 것을 배우기 위해 Node.js 모듈을 파고 들었습니다. 그럼 난 Hound에서이 코드를 건너 온 :Node.js의 기이 한 상속
function Hound() {
//why this?
events.EventEmitter.call(this)
}
//ok, so inheriting the EventEmitter
util.inherits(Hound, events.EventEmitter);
나는 Node.js를에서 util.inherits()
기능이 자식 생성자 as stated in the docs의 프로토 타입으로 새로운 부모 인스턴스를 생성 알고 : 생성자의
프로토 타입 superConstructor에서 생성 된 새 객체로 설정됩니다.
우리 생성자가 EventEmitter
에서 util.inherits()
을 상속하는 경우 생성자의 해당 코드는 무엇입니까?
은 나에게 나쁜 코드처럼 보입니다. –
수시로 이런 유형의 것을 보았습니다. 나는 항상 생성되는 인스턴스에서 슈퍼 생성자를 명시 적으로 호출해야한다고 생각했습니다. 문서에서 발췌 한 것을 감안할 때 필자는 그것이 필요한지 아닌지 확실하지 않다. '계승자 '가 다르게 일했을 때부터 남겨둔 오래된 컨벤션일까요? – chesles
나쁜 코드는 아닙니다. JavaScript는 다른 언어의 모든 상속을 잘 나타내지 않습니다. 이것은 단순히 node.js가 EventEmitter 클래스로 작업하기를 기대하는 방법입니다. –