エラーとメッセージをデータベースに記録するための独自のクラスを作成しようとしていますが、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) に関数エラーが見つかりません
これがなぜなのか誰か知っていますか?コードをきれいに保つために、すべてを 1 つの関数内に配置できるようにしたいのですが、この時点では、上記の最初のコード ブロックのように、すべてを分離する必要があるようです。
編集 - 私の解決策
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
}
}