이것은 제 첫 질문이므로 제대로 처리하지 못할 수 있습니다. 나는 JS와 Node JS를 배우려고 노력하고있다. util.inherits 함수로 고민하고 있습니다.내 생성자가 슈퍼 생성자의 메서드를 상속하지 않는 이유는 무엇입니까?
util.inherits
함수를 사용했지만 Human 생성자의 속성 및 메서드를 Male 인스턴스에서 사용할 수없는 이유를 알 수 없습니다. james instance of Human
이 true이면 확실한 것은 james
개체가 Human
메서드에 액세스 할 수 있어야합니다.
이제는 util.inherits
사용이 권장되지 않지만 이해를 돕기 위해 작동하지 않는 이유를 이해하고 싶습니다.
var util = require('util');
function Human(){
this.firstName = 'James';
this.secondName = 'Michael';
this.age = 8;
this.humanFunction = function(){
console.log('I am a human');
}
}
function Male(){
this.gender = 'male';
this.power = 5;
this.who = function(){
return 'I am Male';
};
}
util.inherits(Male, Human)
let james = new Male();
console.log(james instanceof Human); //true
console.log(james.firstName); //undefined
james.humanFunction(); //james.humanFunction is not a function
질문 : JavaScript 클래스를 사용하는 대신 '유틸리티'라는 패키지를 사용하는 이유는 무엇입니까? 자동으로이를 수행 할 수 있습니까? –
'Male' 생성자의 첫 줄에'Human.call (this);'을 추가하십시오. – 4castle
@ Mike'Pomax'Kamermans 나는 수업을 알고 있고 이미이 기능을 수행하고 있음을 알고 있습니다. 단지 여기에 나의 이해에 결함이 있다는 것을 묻는 것만으로도 클래스를 사용하여 이것을 할 수는 있지만 실제로 util.inherits를 사용하여 작동하지 않는 이유를 알고 싶습니다. –