JavaScript和NodeJS:从不同的JS文件调用方法
JavaScript and NodeJS: Calling method from different JS file
我使用NodeJS将一个js文件包含到另一个。下面我展示了我的两个文件。两个类都包含两个对象的构造函数。我想从类a中调用类b中的方法。在类a中,我需要类B(如下所示),我试图创建类B的新实例,并调用类B的方法get。我得到以下错误:
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;
$ 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'
创建实例时忘记了new
关键字
你需要实例化一个构造函数
function ClassB()
{
var myVar = 'test';
function _get ()
{
return myVar;
};
this.get = function ()
{
return _get();
};
}
exports.ClassB = new ClassB();
相关文章:
- JS文件的路径正在消失
- 我的外部js文件无法加载
- 在不破坏未定义函数的情况下,对多个视图使用单个js文件
- 动态加载和卸载js文件
- 如何将变量传递到另一个js文件
- 如何将所有JS文件连接到一个文件夹中
- 从Chrome扩展名中的popup.html文件在background.js文件中运行一个函数
- 如何使用php文件中的GET来获取我在.js文件中声明的变量
- 如何将模板中的标记脚本移动到.js文件中
- 什么's是连接供应商js文件的最佳方式
- 如何在定义js文件后为外部javascript文件设置变量
- 如何在JS文件中获取资源(.resx)字符串
- 将*.js文件的内容放入Object中
- 如何从onclick函数设置全局变量并将其传递给另一个JS文件
- 导致内容安全策略(CSP)冲突错误的本地jquery.js文件
- 如何使用Gmail运行.js文件
- 如何定义一个模块并使用它来分离js文件
- Angular JS文件上传到托管服务器
- 如何引用HTML中节点模块中的js文件
- 如何将JS文件从其他文件夹链接到页面