2013-03-28 43 views
1

我可是從PHP遷移我的系統的NodeJS,我有以下疑問:的NodeJS:擴展類和__construct方法

在PHP中,我有類

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

但是,怎麼辦在Javascript/NodeJS(ExpressJS)中也是如此? 我認爲這是擴展,但我如何定義__construct方法?在類實例的開始將調用的方法的名稱是什麼樣的?

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

用戶** **,組** **爲一個類名稱 - 氣味糟糕的設計。 – moonwave99

+1

我用這個例子來說明我的問題,我沒有一個帶有這些名字的函數 - 過度批評的味道。 –

+0

我並不是故意粗魯或者任何事情,對此我很抱歉 - 我只是在說有時候人們會濫用課程並塑造他們,就像龐大的方法庫一樣,而不是恰如其分的模型 - 所有的機會都不是你的情況,我只是指的是更廣泛的圖景。 – moonwave99

回答

4

沒有parent構造特別,所以它是由你以某種方式調用父類的構造。

inherits增加了super_屬性,它的第一個參數

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.