「JavaScript」の版間の差分

削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
M →‎目次: リンク切れ(内部リンク)
タグ: 2017年版ソースエディター
→‎外部リンク: クラスの話題がどこにもないので、末尾にクラスの下書き。
121 行
{{wikipedia}}
* [//developer.mozilla.org/ja/docs/Web/JavaScript JavaScript - MDN]
 
== ※ 下書き ==
== クラス ==
JavaScript では「クラス」と言って、いくつかの変数や関数をまとめてグループ的に宣言でき、グループ的に取扱いできます。
 
<syntaxhighlight lang="javascript">
<script>
class sample {
constructor(name) {
this.name = name;
}
}
 
let dummy = new sample("Dog");
document.write(dummy.name);
document.write("<br>");
 
</script>
 
<body>
この行は表示確認用メッセージ
</body>
</syntaxhighlight>
 
表示結果
 
<pre>
Dog
この行は表示確認用メッセージ
</pre>
:というメッセージがウェブブラウザ上にて表示される。
 
 
JavaScript の場合、class の中でコンストラクターというものを使って、そのクラスの初期化の処理をしなければならない仕様になっています(他の言語のクラスではそのような処理のない言語も多い)。
 
また、上記コード中の<code>this</code>は、(宣言された場所の)「そのクラス自身」を意味する予約語です。
 
 
なので書式としては、
 
<syntaxhighlight lang="javascript">
class クラス名 {
constructor(変数名) {
this.変数名 = 変数名;
}
}
</syntaxhighlight>
 
のような書式になります。なぜこう書くかと思われても、そういう仕様なので受け入れてください。
 
なお、上記コードの name のような、クラスの内部にある変数のようなもののことをプロパティと言います。上記コードでは説明の簡単化のため省略しましたが、クラスでは変数のほかにも関数を扱うことも可能であり、クラス内の関数のようなもののことはメソッドと言います。
 
 
さて、クラスを呼び出して使うには、さらに作業が必要であり、
:<code>let dummy = new sample("Dog");</code>
のように、そのクラスをnew演算子とともに呼出し、値(上記コードでは "Dog" のこと)を与えた結果を、代入演算子 let などで変数に代入しなければなりません。このような作業をインスタンスと言います。
 
JavaScriptにかぎらず他の多くのプログラミング言語でも、クラスの機能をもった言語ならインスタンスが同様に必要であり、しかもほぼ同じ書式であり、new演算子と代入演算との組み合わせでインスタンスを行うのが一般的です。
 
そして、クラス外部からアクセスする場合、JavaScriptでは
:<code>クラス変数.プロパティ変数</code>
の書式で指定してアクセスします。
 
[[Category:JavaScript|*]]