javascript - 使用 browserify 创建多个对象

标签 javascript oop browserify

我尝试使用如下设计模式:

人类.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 类。然后在需要实例化人类的每个文件中,需要该类并从那里实例化。

人类.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();

关于javascript - 使用 browserify 创建多个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30921531/

相关文章:

javascript - jspdf/pdfmake 创建 PDF 与将页面打印为 PDF 的好处?

javascript - 这个javascript日期解析有什么问题?为什么js讨厌数字8?

java - 在类里面以正确的方式进行设计时遇到问题

oop - 什么时候类(class)太大或太小?

javascript - jquery如何获取data属性的值

javascript - 如何在文本区域的占位符中换行

java - 如何对迭代器中的 getter 方法的值求和?

javascript - 将 NPM 包拼接成一个 JS 文件

javascript - Requirejs vs browserify vs webpack for js 加载顺序 : am I just moving the situation from one side to another?

javascript - 如何在多页面网站(非 SPA)中使用 react.js?