【问题标题】:NodeJS: extend Class and __construct methodNodeJS:扩展类和 __construct 方法
【发布时间】:2013-03-28 14:22:40
【问题描述】:

我正在将我的系统从 PHP 迁移到 NodeJS,我有以下疑问:

在 PHP 中,我有类

class Users extends Groups {
    function __construct(){
        parent::__construct();
        //do something
    }
}

但是,如何在 Javascript/NodeJS (ExpressJS) 中做同样的事情? 我认为这是扩展,但我如何定义 __construct 方法?像 PHP 一样在 Class 实例开始时调用的方法的名称是什么?

var utils = require('utils');
var Groups = require('./groups.js');
var Users = function(){
    //where is the __construct??
};
util.inherits(Users, Groups);

【问题讨论】:

  • 用户 s,组 s 用于类名 - 糟糕设计的味道。
  • 我用这个例子只是为了说明我的问题,我没有使用这些名称的函数 - 有过分批评的味道。
  • 我并没有粗鲁之类的意思,对此感到抱歉 - 我只是说有时人们会滥用类并将它们塑造成巨大的方法库,而不是像适当的模型 - 很有可能不是你的情况,我只是指的是更广泛的情况。
  • 好吧,对不起!谢谢你的解释。

标签: php node.js class methods construct


【解决方案1】:

没有专门的parent 构造,所以由你决定以某种方式调用父构造函数。

inheritssuper_ 属性添加到它的第一个参数

Users.super_ = Groups;

所以你可以像这样调用父构造函数:

Users.super_.call(this); // Can pass arguments to function as more params.

// OR
Users.super_.apply(this, arguments); // Pass all arguments through.

或者你也可以直接引用父构造函数:

Groups.call(this); // Can pass arguments to function as more params.

// OR
Groups.apply(this, arguments); // Pass all arguments through.

【讨论】:

    猜你喜欢
    • 2011-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-14
    • 2016-11-19
    相关资源
    最近更新 更多