JavaScript和NodeJS:从不同的JS文件调用方法

我正在使用NodeJS包含一个js文件到另一个。 下面我显示我的文件。 这两个类都包含两个对象的构造函数。 我想从ClassA中调用ClassB中的一个方法。 在ClassA中,我需要ClassB(如下所示),我试图创build一个新的B类实例,然后调用B类的方法获得以下错误:

cB.get(); ^ TypeError: Cannot call method 'get' of undefined at Object.<anonymous> (/home/---/ClassA.js:12:4) 

//ClassA.js

 var imported = require('./ClassB'); function ClassA() { //.... } var cA = new ClassA(); var cB = imported.ClassB(); cB.get(); 

//ClassB.js

 function ClassB() { var myVar = 'test'; function _get () { return myVar; }; this.get = function () { return _get(); }; } exports.ClassB = ClassB; 

我相信问题在于如何实例化类B的对象。有没有办法解决这个问题?

这是我的答案

ClassA的

 var ClassB = require('./ClassB'); var cB = new ClassB("Test"); console.log(cB.get()); 

ClassB的:

 function ClassB(myVar){ this.myvar = myVar; }; ClassB.prototype.get = function(){ return this.myvar; }; module.exports = ClassB; 

CMD

 $ node ClassA.js Test 

ClassBV2

 function ClassB(){ this.myvar = "Test"; }; 

如果你需要_get是私人的

 function ClassB(){ this.myvar = "Test"; }; ClassB.prototype.get = function(){ return _get(); }; _get = function(){ return "Other"; } module.exports = ClassB; 

如果你尝试使用它….

 console.log(cB._get()); ^ TypeError: Object #<ClassB> has no method '_get' 

创build实例时,您忘记了new关键字。

你需要实例化一个构造函数

 function ClassB() { var myVar = 'test'; function _get () { return myVar; }; this.get = function () { return _get(); }; } exports.ClassB = new ClassB();