browserify和类javascript原型继承

browserify和类javascript原型继承,javascript,prototype,easeljs,browserify,Javascript,Prototype,Easeljs,Browserify,因此,我使用browserify来管理我正在从事的项目的模块 每个文件都包含以下内容: module.exports = function(){ // class constructor } 然后,在main.js文件中,我创建了如下新对象: var Foo = require('./foo.js'); var foo = new Foo(); Foo.prototype = new Bar(); Foo.prototype.constructor = Foo; Foo = funct

因此,我使用browserify来管理我正在从事的项目的模块

每个文件都包含以下内容:

module.exports = function(){
  // class constructor
}
然后,在main.js文件中,我创建了如下新对象:

var Foo = require('./foo.js');
var foo = new Foo();
Foo.prototype = new Bar();
Foo.prototype.constructor = Foo;

Foo = function(){
    Bar.call(this)
}
var inherits = require('inherits');
var Bar = require('./bar');

function Foo() {
  Bar.call(this);
}

inherits(Foo, Bar);

Foo.prototype.myThing = function () { ... };

module.exports = Foo;
问题是,我不知道如何在这个设置中使用原型继承。 通常,如果我希望类Foo从类Bar继承,我会这样做:

var Foo = require('./foo.js');
var foo = new Foo();
Foo.prototype = new Bar();
Foo.prototype.constructor = Foo;

Foo = function(){
    Bar.call(this)
}
var inherits = require('inherits');
var Bar = require('./bar');

function Foo() {
  Bar.call(this);
}

inherits(Foo, Bar);

Foo.prototype.myThing = function () { ... };

module.exports = Foo;
如果不使用browserify,我将如何做这些事情? 我想我可以用module.export替换所有的foo,但是我试图从easeljs继承一些东西,但是它不起作用。这意味着“this”没有在容器的初始值设定项中定义


提前谢谢

我认为应该更像这样:

var Bar = require('./bar');

function Foo(){
    //...
}

Foo.prototype = new Bar();
Foo.prototype.constructor = Foo;

module.exports = Foo;

请注意,您不需要在Foo中再次调用Bar,因为它已经被调用过一次。

对于browserify,我建议使用该模块

它避免创建Bar实例来设置原型,执行构造函数赋值,还提供了超级类访问

您的用例如下所示:

var Foo = require('./foo.js');
var foo = new Foo();
Foo.prototype = new Bar();
Foo.prototype.constructor = Foo;

Foo = function(){
    Bar.call(this)
}
var inherits = require('inherits');
var Bar = require('./bar');

function Foo() {
  Bar.call(this);
}

inherits(Foo, Bar);

Foo.prototype.myThing = function () { ... };

module.exports = Foo;

非常感谢,我已经将另一个标记为关于require模块的正确信息,但这非常有效;正确:Foo.prototype=Object.createBar.prototype;