> 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>
というふうに、処理を関数に追い出せます。
この例だと、あまりありがたみが感じられないかもしれませんが、同じ処理が
複雑で何十行にもわたる、とか、複数のフォームで同様の処理をしなくては
いけないとか、というときに便利です。
# お猿さんに分かるかどうかは自信がありません (^^;
# 分からなければ、補足を。