NodeJS使用另一个文件中的类

时间:2018-05-14 05:14:33

标签: javascript node.js class oop module

我有一个java脚本文件引用另一个包含使用

的类的javascript文件
/html/folder/index.php?page=pageName

然后我尝试通过

实例化班级冠军的对象
const Champion = require("./championgg_webscraper_cheerio.js");

当我这样做时,将它打印到控制台指示和未定义的变量:

var temp = new Champion("hello");
console.log(temp);

此外,当我尝试打印出类的属性时,我得到了未定义的内容,我认为它可能无法访问most_frequent_completed_build变量。

Champion {}

以下是关于championgg_webscraper_cheerio.js文件的信息

console.log(temp.most_frequent_completed_build);

3 个答案:

答案 0 :(得分:0)

您正在导出功能

您所要做的就是调用该功能,如

var temp = Champion();

您可以详细了解new关键字herehere

答案 1 :(得分:0)

我认为你想要一个名为 Champion Function构造函数(像Java这样的其他编程语言中的原型或蓝图类)。

作为替代方案,我建议你学习ES6 way of writing classes,它类似于Java。

您可以通过将所有变量或方法添加到函数构造函数中的 this 变量来实现这一点,以便可以使用使用创建的对象访问它们新的'关键字,即使它们成为类成员或方法。

在你的情况下,

function Champion(champName) {
    //Some code

    this.most_frequent_completed_build = NULL;

    //Rest of code
}

module.exports = Champion;

只要确保无论何时尝试访问类变量,请始终使用this.variable_name之类的this.most_frequent_completed_build

因此,当您在主应用程序中创建此类的新对象时,您将能够访问所有类成员和方法。

const Champion = require("./championgg_webscraper_cheerio.js");

var temp = new Champion("hello");
console.log(temp.most_frequent_completed_build);

答案 2 :(得分:0)

providers: [AppService]