【问题标题】:understanding javascript inheritance and node.js util inherits function example理解javascript继承和node.js util继承函数示例
【发布时间】:2013-03-07 18:16:01
【问题描述】:

我有两个模块:apirequest.jsfeed.js。 当我在 apirequest 中调用 feed.start() 时,我得到了 @ 987654322@。为什么是这样? 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();

【问题讨论】:

    标签: javascript node.js oop inheritance


    【解决方案1】:

    问题是顺序:

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

    如果你交换这些行,它会起作用:

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

    【讨论】:

    • 谢谢!是的,我只是这样做了,你的答案就进来了;)
    • 谢谢,很好的回答!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-12
    • 1970-01-01
    • 1970-01-01
    • 2013-11-30
    • 2014-02-25
    • 2011-09-07
    • 1970-01-01
    相关资源
    最近更新 更多