ガレコレ
Garage Collection
 
2017年9月27日(水)
[JavaScript] 変数にオブジェクトを格納しておく #HTML5&CSS3&JavaScript

 HTMLでは、タグそのものやタグで区切られた部分を、塊としたオブジェクトとして扱えます。DOM [Document Object Model] のルールに従い、オブジェクトを指定します。

 手っ取り早いのは、オブジェクトのIDを指定するやり方です。下記のプログラミングでは、IDがid_div1のオブジェクト内に「あ」を出力しています。

--
<html>

<head>

<script>

window.onload = _setup;

function _setup(){
  document.getElementById("id_div1").innerHTML = "あ";
}

</script>

</head>



<body>

<div id="id_div1"></div>

</body>

</html>
--

 こんなに短いプログラミングですが、注意点が3つあります。

 1つは、わざわざ、ページがすべて読み込まれてから、関数_setup()を実施していることです。下記のように記述すると、まだオブジェクトのIDが確定する前にID指定するので、エラーとなります。

-- × --
<script>

document.getElementById("id_div1").innerHTML = "あ";

</script>
--

 2つ目は、window.onlaodにおける関数の指定です。下記のように()を付けるとエラーになります。

-- × --
window.onload = _setup();
--

 最後の1つは、ID指定の場合、複数形にして、getElementsById()としないことです。IDは、1つだけというのが前提となっています。

-- × --
document.getElementsById("id_div1").innerHTML = "あ";
--


 さて、プログラミングの中で、何度も同じオブジェクトを指定する場合、変数にオブジェクトを格納しておくことをお勧めします。下記のプログラミングでは、変数$id_div1にオブジェクトを格納しています。

--
<html>

<head>

<script>

window.onload = _setup;

function _setup(){
  $id_div1 = document.getElementById("id_div1");
}

</script>

</head>



<body>

<div id="id_div1"></div>

</body>

</html>
--


P.S. ガレコレ流では、『変数名』の頭に$(ドル)を付けます。他のプログラミング言語ではよく見られますが、JavaScriptでは$が不要です。しかし、$が無いとコマンドなのか変数なのか識別が難しくなるので、そうしています。また、予約定数名とのバッティングを回避できます。

 『関数名』の頭に_(アンダースコア)を付けています。これも、予約関数名とバッティングしないようにするためです。

 プログラミングにも、ちょっとした工夫が必要です。


P.S.2 onloadに関しては、いろいろな記述方法があります。自分は、上記の記述を好んで使っています。
 
お問い合わせ
by Network Communication Note