2015-06-18 47 views
2

我想使用如下的設計模式:創建多個對象與browserify

human.js

function Human(name){ 
    this.name = name 
    this.sayName = function(){ 
     console.log(this.name); 
    } 
} 

var a = new Human("bob"); 
var b = new Human("ted"); 

但是我還沒有使用browserify多,我不知道該怎麼辦這在browserify。

我注意到當我需要human.js然後嘗試創建一個新對象時,它似乎正在替換舊對象。

如何使用browserify進行此設計模式?

我的代碼休息是沿着線的東西:

module.exports = { 
    MyHuman:Human 
} 

,並在文件1:

var human = require('human.js') 
var ted = new Human('ted') 
ted.sayName(); 

,並在文件2:

var human = require('human.js') 
var bob = new Human('bob') 
bob.sayName(); 
+0

我不明白你想要做什麼。您是否試圖從human.js或Human類的實例中導出Human類? – Hans

+0

我試圖創建一個類,以便我可以在別處創建多個實例 –

回答

2

有了CommonJS的(Browserify ),當你打電話給require的時候,你輸出的是什麼(但是,假設你輸出的是一個singleton,根據我的經驗,情況並非總是如此)。所以在這種情況下,你想直接導出Human類。然後在需要實例化人類的每個文件中,需要該類並從那裏實例化。

human.js

function Human(name) { 
    this.name = name; 
    this.sayName = function() { 
    console.log(this.name); 
    }; 
} 

module.exports = Human; 

文件1

var Human = require('./human.js'); 
var ted = new Human('Ted'); 
ted.sayName(); 

文件2

var Human = require('./human.js'); 
var bob = new Human('Bob'); 
bob.sayName();