2015-08-31 146 views
0

我明白需要模塊,但是我想要使用模塊的實例,有點像Java項目的類的實例或其他。我有這樣的代碼在我的app.js:Nodejs:模塊實例

var number = require("./number.js"); 
var numbers = [number.setNumber(2), 
       number.setNumber(3), 
       .....]; 

我有number.js內:

var number = -1; 
exports.setNumber(num){ 
    number = num; 
} 
exports.getNumber(){ 
    return number; 
} 

我希望這是一種明白無誤的什麼,我想在這裏做的,但我要麼找不到它在谷歌上解釋的任何地方,要麼我不確定要問什麼問題......所以我希望這不是重複的。

問題:如何創建模塊實例/我可以創建模塊實例嗎?

回答

0

回答自己,因爲雖然給出的答案,幫助他們是不完整的。 我創建了一個類似於已有的構造函數和所有其他「類方法」作爲原型的答案的JavaScript類。關鍵部分雖然是export它。

var myNumber = function(num) { 
    this.num = num 
} 

myNumber.prototype.setNumber = function(num) { 
    this.num = num 
} 

myNumber.prototype.getNumber = function() { 
    return this.num 
} 
module.exports = myNumber 

然後,在節點其被要求在我有:

var myNumber = require('./number.js'); 

var numbers = [ new myNumber(2), 
      new myNumber(3), 
      new myNumber(3), 
      new myNumber(4), 
      new myNumber(4), 
      new myNumber(5), 
      new myNumber(5), 
      new myNumber(6), 
      new myNumber(6), 
      new myNumber(8), 
      new myNumber(8), 
      new myNumber(9), 
      new myNumber(9), 
      new myNumber(10), 
      new myNumber(10), 
      new myNumber(11), 
      new myNumber(11), 
      new myNumber(12)]; 

這是給我的我一直在尋找的20個左右不同mynumber的對象。我不知道我是否正確使用了module.exports = myNumber,但它有效。

0

模塊只是一種組織代碼的方法。該object,或另一種類型,您通過module.exports =從模塊輸出是的東西,那你require

所以你想要的東西像Java類需要,你可以創建一個構造

var Number = function(num) { 
    this.num = num 
} 

Number.prototype.setNumber = function(num) { 
    this.num = num 
} 

Number.prototype.getNumber = function() { 
    return this.num 
} 

,並在您其他模塊可以創建數的新實例new關鍵字

var Number = require('./number.js') 
var myNum = new Number(3) 
myNum.setNumber(4); 
// ... so on 
+0

當我重新分配'myNum.setNumber(4)'時,是否創建一個新的Number對象? – discodane

+0

我還需要導出數字「類」? – discodane

+0

我不會爲用戶定義的類使用名稱'Number',因爲它已經是內置的。 – robertklep