我正在尝试创建自己的类来将错误和消息记录到数据库中,但我对在 Javascript 中创建自定义类和方法是新手。经过大量研究,我能够将以下代码放在一起:
function log ()
{
}
log.error = function (currentFunction, logMessage)
{
createLog (currentFunction, logMessage, "Error");
}
而且我可以通过以下方式log.error
成功调用该函数:
log.error("current function name", "this is my error message");
我的问题是:我看过的大多数网站都说要像这样组织您的代码:
function log ()
{
this.error = function (currentFunction, logMessage)
{
createLog (currentFunction, logMessage, "Error");
}
}
但是每当我尝试调用该错误函数时,都会收到以下错误:
在对象函数日志中找不到函数错误(currentFunction,logMessage)
有人知道为什么是这样吗?为了保持我的代码干净,我真的希望能够将所有内容都放在一个函数中,但是在这一点上,我可能不得不将所有内容分开,就像上面的第一个代码块一样。
编辑 - 我的解决方案
感谢dystroy和Jose Vega(对不起,Jose,我没有足够的声誉来支持你的答案)。我最终使用了 dystroy 的解决方案,仅仅是因为我觉得将来维护我的代码会更容易,但是 Jose 的回答帮助我深入了解了我正在尝试做的事情以及我可以使用的不同选项。我觉得当您执行var objectName = {}
vs之类的操作时,我对正在发生的事情有更好的了解function className () {}
。
这是我的新代码:
function log ()
{
log.prototype.error = function (currentFunction, logMessage)
{
createLog (currentFunction, logMessage, "Error");
}
log.prototype.warning = function (currentFunction, logMessage)
{
createLog (currentFunction, logMessage, "Warning");
}
log.prototype.info = function (currentFunction, logMessage)
{
createLog (currentFunction, logMessage, "Info");
}
function createLog (currentFunction, logMessage, messageType)
{
//code that updates MSSQL database
}
}