ここは、ふぇりあ16歳が不定期に連載しているオンライン小説のページです。

VNIふぇりあ16歳へ


ゼロからわかる現代JavaScript

27.クラスとコンストラクタ

さてオブジェクト指向をマスターするには

クラスのコンストラクタについて理解する必要があります。

コンストラクタは、オブジェクトを作成し、
初期化する関数オブジェクト (Function オブジェクト) なのですが。

わかりやすく説明すると

クラスをつくるときに

function MyClass() {

}

とまずメソッドを作ると思います。

この初期化メソッドこそがコンストラクタなのです。

コンストラクタ (Constructor)

はconst(定数)であり、コンスタント(Constant)からきています。

そこから分かることは、オブジェクトを生成するときに
一定の処理をコンスタントに実行するメソッドということになります。

つまり、

var mc = new class();

とオブジェクトを生成した時に

class();

とclass()メソッドを実行したのと同じになるということです。
そのため、オブジェクトを生成する一行に処理をまとめることができるのです。

実例を見てみると分かりやすいと思います。

これはオブジェクト指向を理解するための大きなステップになります。

今回使用するソースコード
var mc = new MyClass();
mc.newline();

var mc2 = new MyClass2("文字列を入れてみる");

function MyClass() {
  var obj = this;
  obj.a = "コンストラクタ";
  obj.newline = function () {
  document.write("<br>");
  }

  document.write(obj.a + "はコンスタントに処理を実行する");
  obj.newline();
}

//引数付きのクラス
function MyClass2(x) {
  var obj = this;
  obj.a = x;
  obj.newline = function () {
  document.write("<br>");
  }

  document.write(obj.a + "引数をとってから実行する");
  obj.newline();
}

このことは他のオブジェクト指向言語にも共通することです。
クラス変数、クラスメソッドではなく

実際のコンストラクタ部分は、document.write(〜)以下ということになりますo

実行結果

コラム:

おなじ事をクラスメソッドで行うとやや回りくどくなります。
プログラミングは簡素に書く方がより上手な方法です。

//メソッドで作ってみる
function MyClass3() {
  var obj = this;
  obj.a;
  obj.newline = function () {
  document.write("<br>");
  }
  obj.text = function (x) {
  obj.a = x;
  document.write(obj.a + "引数をとってから実行する");
  obj.newline();
  }
}

(C)著作権はふぇりあ16歳とお兄ちゃんにあります。
無断転載、盗用は禁止です。