10

apirequest.jsfeed.jsの 2 つのモジュールがあります。apirequestを呼び出すfeed.start()と、. どうしてこれなの?APIRequest のプロパティを継承しないのですか?TypeError: Object #<Feed> has no method 'start'util.inherits(Feed, 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();
4

1 に答える 1

13

問題は順序です:

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

これらの行を交換すると、機能します。

util.inherits(APIRequest, EventEmitter);
APIRequest.prototype.start = function() { }
于 2013-03-19T07:10:10.733 に答える