Синглтон-паттерн с Browserify / CommonJS

Попытка реализовать шаблон синглтона в модулях CommonJS, используя Browserify. До сих пор:

// foo.js

var instance = null;

var Foo = function(){
    if(instance){
        return instance;
    }
    this.num = 0;
    return instance = new Foo();
}

Foo.prototype.adder = function(){
    this.num++;
};

module.exports = Foo();

// main.js

var foo = require('./foo.js');
console.log(foo.num); // should be 0
foo.adder(); // should be 1
var bar = require('./foo.js');
console.log(bar.num); // like to think it'd be 1, not 0

Первая проблема заключается в том, что я получаюmaximum call stack exceeded ошибка при загрузке встроенного файла JS в браузер, но во-вторых, правильно ли я подхожу к этому? Это возможно?

Ответы на вопрос(2)

Ваш ответ на вопрос