var Controller = function() {
try {
throw new this.userException('test', 'test');
} catch (error) {
if (error instanceof this.userException) {
console.error(error.stack);
}
}
}
Controller.prototype.userException = function (name, message, htmlMessage) {
this.name = name;
this.message = message;
this.htmlMessage = htmlMessage;
Error.captureStackTrace(this, this.userException);
this.toString = function() {
return name + ' : ' + message;
}
};
カスタム例外を作成しようとしていたときに、このError.captureStackTrace
がノードJSドキュメントに見つかりました。まず、私は以下のように使いました。 console.error(error)
オブジェクトのプロトタイプ関数の 'this'キーワードを理解しています
Error.captureStackTrace(this, userException);
はuserException
メソッドのプロパティを含むオブジェクトを返す
Error.captureStackTrace(this, this.userException);
に私はラインを変更なしoutput.Byミスを与えませんでした。またconsole.error(error.stack);
はstack trace
を印刷します。私はとても混乱していますthis
キーワードはこのステートメントでどのように動作しますError.captureStackTrace(this, this.userException);
。第一引数と第二引数のキーワードは何ですか?this
?それは同じController
オブジェクトですか?しかし、もう一度、なぜ私はthis
を第一引数と第二引数として提供しなければならなかったのですか?
プロトタイプオブジェクトにコンストラクタ関数を配置しないでください。彼らは方法ではありません。 – Bergi