• 締切済み

Java Script の "this"

Java Scriptにおいて、"this"はどういう働きをするのですか?なにぶん初心者なもので猿でもわかるくらい簡単に教えて頂ければありがたいです。お願いします。

みんなの回答

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

> Java Scriptにおいて、"this"はどういう働きをするのですか? 日本語そのままなんですが、「要素そのもの」を表します。 要素は、それにつけた名前でアクセスできるので、あるページ専用の関数を 書く上では、あまり this のありがたみを感じられないかもしれません。 でも、例えば、ボタンが複数あって、その内容に応じた処理を共通に記述で きる、とか、スクリプト自体を外部のファイルに逃がして、複数のページで 共通な処理を書くとか、というときに、そのありがたみを感じることができます。 例えば、ボタンが押される度に、その値(ボタンの文字)を決まったテキスト エリアに書き込むような場合を考えます。 <form name="FORM1"> <input type=text name="BUTTON_NAME" size=50> <input type=button value="BUTTON1" onClick="document.FORM1.BUTTON_NAME.value='BUTTON1'"> <input type=button value="BUTTON2" onClick="document.FORM1.BUTTON_NAME.value='BUTTON2'"> <input type=button value="BUTTON3" onClick="document.FORM1.BUTTON_NAME.value='BUTTON3'"> </form> でも良いんですが、onClick の処理が全部同じですよね。そういう時には、 <script> function set_button_name(form, button) { form.BUTTON_NAME.value = button.value; } </script> <form name="FORM1"> <input type=text name="BUTTON_NAME" size=50> <input type=button value="BUTTON1" onClick="set_button_name(this.form, this)"> <input type=button value="BUTTON2" onClick="set_button_name(this.form, this)"> <input type=button value="BUTTON3" onClick="set_button_name(this.form, this)"> </form> というふうに、処理を関数に追い出せます。 この例だと、あまりありがたみが感じられないかもしれませんが、同じ処理が 複雑で何十行にもわたる、とか、複数のフォームで同様の処理をしなくては いけないとか、というときに便利です。 # お猿さんに分かるかどうかは自信がありません (^^; # 分からなければ、補足を。