クラスのインスタンスを参照するように、クラスメソッドを要素にアタッチしようとしています。'this'変数を使用するクラスとサブクラス
//例
class Default{
constructor(){
this.parent = null
}
assemble(){
var form = document.createElement('form'); //CREATE FORM ELEMENT
var btn = document.createElement('button'); //CREATE BUTTON ELEMENT
this.parent = form; //DECLARE PARENT (CONSTRUCTOR)
btn.type = 'button';
btn.innerHTML = 'click me';
btn.addEventListener('click',this.submit);
form.appendChild(btn);
return form;
}
}
class Form extends Default{
submit(){
console.log(this.parent); //should return instantiated form value for property parent but doesn't (undefined)
console.log(this); //returns reference to the button element itself not the class (Form)
}
}
//
var route={
init:()=>{
var form = new Form();
var formBuild = form.assemble();
document.body.appendChild(formBuild);
}
};
document.addEventListener('DOMContentLoaded',route.init);
質問CALLED:なぜボタン要素自体ではなくインスタンス化されたクラスを返すFormクラスのメソッドsubmit()
があるの?
あなたの質問は少し混乱している私はあなたのコードで[codepen](http://codepen.io/anon/pen/VmMpzN?editors=1111)が作成され、私はそれが期待通りすべてが動作します。あなたが達成したいと思う結果は何ですか? – Dario
@Dario私は、この例では 'this.parent'のフォーム要素となる親を返すようにしようとしていますが、' this'はインスタンス化されたオブジェクトを全く参照しません。 –
コードペンで、 'this.parent'がフォーム自体を参照していることを確認しましたが、' this'もフォームを返すようにしますか? – Dario