2013-03-19 9 views
10

Mam dwa moduły: apirequest.js i feed.js. Gdy zadzwonię pod numer feed.start() w apirequest, otrzymam, TypeError: Object #<Feed> has no method 'start'. Dlaczego to? Czy util.inherits(Feed, APIRequest); nie dziedziczy właściwości APIRequest?zrozumienie dziedziczenia javascript i node.js util dziedziczy funkcja przykład

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(); 

Odpowiedz

13

Problem polega na zamówienie:

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

Jeśli zamienić te linie, to będzie praca:

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

Dzięki! Tak, właśnie to zrobiłem i twoja odpowiedź nadeszła;) –

+0

Dzięki, świetna odpowiedź! –

Powiązane problemy