MyController

WEB業界素人の僕がまた見返しそうなことのメモです。

【JS】javascriptにおけるコンストラクタ(クラス)、プロトタイプ、インスタンス作成の説明

■流れ

1.クラス(コンストラクタ)作成

2.インスタンス

3.実行

 

■コンストラクタについて

・あくまでオブジェクトを作るための準備、つまり初期化が目的なのでコンストラクタからオブジェクトを返してはならない。

・オブジェクト生成するのを想定している場合はクラスではなくコンストラクタと呼ぶ。基本はオブジェクト生成するのでクラスというよりはコンストラクタと思ってもほぼ間違いない感じ。
・一般的には大文字から始めると分かりやすいぽい。

 

■プロトタイプについて

コンストラクタでメソッドを定義しても同じ動きをするが、

下記のコードのようにプロトタイプでメソッドを定義することでメリットが有る。

1.メモリ節約になる。

インスタンスにコピーされるコンストラクタと違い、プロトタイプはインスタンスから参照されるという動きになる。

2.メンバの追加変更をリアルタイムにインスタンスが認識できる。

 

■実際のコード

//クラス作成(コンストラクタ)
var Member = function(firstname,lastname){
this.firstname = firstname; //インスタンスプロパティに設定
this.lastname = lastname;
};

 

//プロトタイプでメソッドを定義(リテラル表現)
Member.prototype = {
getName : function(){
return this.lastname + ' ' + this.firstname;
},
toString : function(){
return this.lastname + ' ' + this.firstname;
}
}

//インスタンス
var mem = new Member('名前','苗字');

 

//表示
document.writeln(mem.getName());

document.writeln(mem.toString());