我正在尝试使用如下的设计模式:
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 :(得分: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();