ウェブページにイベントのHTMLコンテキストの異なるパーサを書きます。サブタイプから呼び出されるスーパータイプのjsイベントオブジェクトにアクセスするには?
がイベントを登録すると、パーサ機能にリンク:
基本的な構造は次のようになります。
elem.addEventListener(
'click',
(e) => {
let parser = new UiResultsItemInfoParser(e);
eventInfo = parser.evntInfo;
submitEvnt(eventInfo);
}
);
UiResultsItemInforParser
EvntParser
とe
呼ばれるスーパータイプのサブタイプは、明らかに、イベント・オブジェクトです。
EvntParser
は次のようになります。
function EvntParser (e) {
this._evntInfo = {};
this._evntInfo.time = e.timeStamp.toString();
this._evntInfo.type = 'event';
}
EvntParser.prototype = {
set evntInfo(e) {
this._evntInfo.time = e.timeStamp.toString();
this._evntInfo.type = 'event';
},
get evntInfo() {
return JSON.stringify(this._evntInfo);
}
};
UiResultsItemInforParser
がEvntParser
由来し、このようになりますされています。残念ながら
function UiResultsItemInfoParser(e) {
EvntParser.call(this, e);
}
UiResultsItemInfoParser.prototype = new EvntParser();
UiResultsItemInfoParser.prototype.constructor = UiResultsItemInfoParser;
イベントがトリガされたとき、私はEvntParser
にラインthis._evntInfo.time = e.timeStamp.toString();
ためTypeError: e is undefined
を取得し、新しいUiResultsItemInfoParser
オブジェクトがaddEventListener
に作成されます。
どうして私はEvntParser
がオブジェクト作成中にイベントオブジェクトにアクセスできるように修正できますか?
ありがとうございます!しかし、本当に興味深いですが、私は新しいリファレンスと初心者の本(https://www.amazon.de/JavaScript-Fortgeschrittene-Objektorientierung-funktionale-Programmierung/dp/3836238381)からパターンを得ました。それは本当に残念です。 (サイドノート:私はあまり知らないプロトタイプロジックの感覚を得るために擬似クラス表記を使用しましたが、とにかくthxです) –
@CutúChiqueño:ああ、それは**恥です。本にウェブサイトがあれば、バグを報告できるかもしれません...まあ、私が言うように、他のすべては正しいものでした。 :-) –