javascript - 如何在javascript es6类构造函数中声明一个对象
问题描述
我在类构造函数中声明了一个属性,并通过声明为“静态”的方法访问了“this”,并且它不可访问。如何访问静态方法中的构造函数(类)变量?
export class Reporter {
constructor() {
this.jsonReports = path.join(process.cwd(), "/reports/json")
this.cucumberReporterOptions = {
jsonFile: targetJson,
output: htmlReports + "/cucumber_reporter.html",
reportSuiteAsScenarios: true,
theme: "bootstrap",
}
}
static createHTMLReport() {
try {
reporter.generate(this.cucumberReporterOptions);
} catch (err) {
}
}
}
更新:
根据“@CodingIntrigue”,我在 'reporter.js' 文件中这样做了,并在我的配置文件中将该方法称为 Reporter.createHTMLReport() 并按预期工作。但不确定这是否是最佳做法。
const jsonReports = path.join(process.cwd(), "/reports/json")
const cucumberReporterOptions = {
jsonFile: targetJson,
output: htmlReports + "/cucumber_reporter.html",
reportSuiteAsScenarios: true,
theme: "bootstrap",
}
export class Reporter {
static createHTMLReport() {
try {
reporter.generate(cucumberReporterOptions);
} catch (err) {
}
}
}
解决方案
如果你想继续使用class
语法,你也可以只使用 makejsonReports
和cucubmerReporterOptions
static 属性:
export class Reporter {
static createHTMLReport() {
try {
reporter.generate(Reporter.cucumberReporterOptions);
} catch (err) {
}
}
}
Reporter.jsonReports = path.join(process.cwd(), "/reports/json")
Reporter.cucumberReporterOptions = {
jsonFile: targetJson,
output: htmlReports + "/cucumber_reporter.html",
reportSuiteAsScenarios: true,
theme: "bootstrap",
}
推荐阅读
- c# - ef core new dbcontext 只执行一次 OnModelCreating
- java - 当我触摸用户开始聊天时出现问题
- php - 在同一个 HTML 表格中使用不同的数组变量来显示数据
- jquery - 从 Ajax 请求解析 Json 数据时出错
- c - 具有共享数据的 OpenMP 递归任务导致速度大幅下降
- angular9 - ngcc 中的错误已在 id xxxx 的进程中运行
- kubernetes - Apache Flink 作业未在 Kubernetes(副本)中的多个 TaskManager 上调度
- airflow - Airflow - 一次从 dags_folder 中清除所有已删除 DAG 文件的 Web UI 中的所有 DAG 条目
- python - 如何在 @patch 装饰器中引用 unittest TestClass 属性
- c# - 更新实体框架中的多级属性