使用 browserify 创建多个对象

creating multiple objects with 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();

使用 CommonJS (Browserify),您导出的内容将是您调用 require 时得到的内容(但是,请小心假设您导出的内容是单例,根据我的经验,情况并非总是如此)。所以在这种情况下,您想直接导出 Human class。然后在每个需要实例化人类的文件中,需要 class 并从那里实例化。

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();