Подтвердить что ты не робот

Понимание наследования javascript и node.js util наследует пример функции

У меня есть два модуля: apirequest.js и feed.js. Когда я вызываю feed.start() в apirequest, я получаю TypeError: Object #<Feed> has no method 'start'. Почему это? Не наследует ли util.inherits(Feed, APIRequest); свойства APIRequest?

apirequest.js

var EventEmitter = require('events').EventEmitter;
var util = require('util');

function APIRequest(endpoint) { } 

APIRequest.prototype.start = function() { }

util.inherits(APIRequest, EventEmitter);

module.exports = APIRequest;

feed.js

var util = require('util');
var APIRequest = require('../lib/api_request');

function Feed(endpoint) {
  APIRequest.call(this, endpoint);
}

util.inherits(Feed, APIRequest);

var feed = new Feed(endpoint);

feed.start();
4b9b3361

Ответ 1

Проблема заключается в порядке:

APIRequest.prototype.start = function() { }
util.inherits(APIRequest, EventEmitter); <-- *overwrites* APIRequest.prototype

Если вы поменяете эти строки, это сработает:

util.inherits(APIRequest, EventEmitter);
APIRequest.prototype.start = function() { }