使用browserify创建多个对象

时间:2015-06-18 17:04:43

标签: javascript oop 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();

1 个答案:

答案 0 :(得分:2)

使用CommonJS(Browserify),您导出的内容将是您调用require时所获得的内容(但是,请注意假设您导出的是单身,但根据我的经验并非总是这样)。所以在这种情况下,您希望直接导出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();