我一整天都在阅读关于Javascript类的文档,现在我想将Bug Report函数重构到它自己的类中,但即使我开始这样写我的类:
class bugReport {
constructor(x, y)
this.x = x;
this.y = y;
}
我努力思考如何开始将我的Bug报告的组成部分分解成Javascript类的格式。当涉及到报告特性时,x, y是什么?有没有一种方法可以让创建类的步骤变得更简单,或者有一种您遵循的模式?我将在下面附上我的原始bug报告代码,以给您一个我试图创建一个类的示例。
BugReport:
$("#bug").submit((e) => {
e.preventDefault()
const input = document.getElementById('nameInput');
bugInfo = {
"name": `[${ticket.id}] Bug report`,
"story_type" : "Bug",
"description": `+ ${urlHelper}` + " n" + `+ ${input.value}`,
}
reportBug(bugInfo).then(collapse.collapse('toggle'))
})
});
async function reportBug(data = {}) {
const url = 'exampleUrl'
const response = await fetch(url, {
method: 'POST',
headers: {
"Token": `${metadata.settings.token}`,
"Content-Type": "application/json"
},
body: JSON.stringify(data)
});
return response.json();
}
我不是真正的JavaScript专家,但我会这样做:
class Logger {
static async logInfo(data = {}) {
const url = 'exampleUrl'
const response = fetch(url, {
method: 'POST',
headers: {
"Token": `${metadata.settings.token}`,
"Content-Type": "application/json"
},
body: JSON.stringify(data)
});
return response.json();
}
}
另外,既然你问了pattern you follow
,我建议你读一下Cross-cutting concern
。以下是一些链接:
- https://en.wikipedia.org/wiki/Cross-cutting_concern
- https://www.c-sharpcorner.com/UploadFile/vendettamit/managing-cross-cutting-concerns-the-logger-and-logging/