• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:javascript 親オブジェクトと子オブジェクトを分離させたい)

JavaScriptで親オブジェクトと子オブジェクトを分離させる方法

このQ&Aのポイント
  • JavaScriptで親オブジェクトと子オブジェクトを分離させる方法を知りたいです。
  • 現在、JavaScriptのコードで親オブジェクトと子オブジェクトを扱っていますが、子オブジェクト内で親オブジェクトのプロパティを参照する方法が分からず困っています。
  • 具体的には、親オブジェクト内で定義されたプロパティを子オブジェクト内の関数で使用したいのですが、どのようにすればいいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

>func()関数内でthisを使うとa[0].propを参照できます。 ここで、this は、a[0].prop というより、 document.getElementById('aaa') なのでa[0]とは関係ありません。 まどろっこしいですが 例えば、こんな感じにはできます。 a = new Array(); a[0]= new OBJ(); function OBJ(){ this.prop=document.getElementById("aaa"); this.prop2=document.getElementById("bbb"); } OBJ.prototype.func = function(){ alert(this.prop.id); alert(this.prop2.id); }; a[0].prop.addEventListener("click",func,false); function func(){ a[0].func(); }

skip_jack
質問者

お礼

ご回答ありがとうございます。 確かにこの方法でa[0]をthisとして使えます。 少し説明が足りなかった点があったのですが、私がやりたいのはイベントリスナーで呼び出した関数(とういかオブジェクトですね)内で、配列の引数を指定せず対象の配列を使うことです。 addEventListenerの第二引数で配列要素番号を引数として渡せればいいんですけれど。。。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

#1>私がやりたいのはイベントリスナーで呼び出した関数(とういかオブジェクトですね)内で、配列の引数を指定せず対象の配列を使うことです 意図するところを理解してないワケではなくて #1で説明している通り、 >a[0].prop.addEventListener(click,func,false); は、a[0]のオブジェクトに関してイベントを設定しているわけではありませんので、クリックイベントによって呼び出される関数(オブジェクトではない)でのthisは、id='aaa' のオブジェクト(エレメント)であってa[0]ではありません。(a[0]とは関係ない) だから、このような(質問者の)方法ではムリです。

skip_jack
質問者

お礼

回答ありがとうございます。納得です。a[0]は関係ないのですね。コードを変えて別の方法でやってみます。

関連するQ&A