構文
構文は以下の通りです。
// クラスの定義
class クラス名 {
constructor(引数) {
this.プロパティ = 引数;
}
}
// プロトタイプメソッドの定義
クラス名.prototype.メソッド名 = function() {
// メソッドの処理
};
class クラス名 {
constructor(引数) {
this.プロパティ = 引数;
}
}
// プロトタイプメソッドの定義
クラス名.prototype.メソッド名 = function() {
// メソッドの処理
};
解説
クラス内でconstructorを使って、インスタンス生成時に初期化されるプロパティを定義します。クラス名に .prototype.メソッド名 を追加することで、そのクラスのすべてのインスタンスが利用できるプロトタイプメソッドを定義できます。この方法で、各インスタンスが共有する関数を設定し、メモリ使用量を削減できます。
プログラミング例
具体的なプログラミング例を紹介します。
// 学生クラスを定義
class 学生 {
constructor(名前) {
this.名前 = 名前;
}
}
// プロトタイプメソッドを追加
学生.prototype.挨拶 = function() {
console.log("こんにちは、" + this.名前 + "です。");
};
// 使用例
let 生徒A = new 学生("太郎");
生徒A.挨拶(); // 結果: こんにちは、太郎です。
class 学生 {
constructor(名前) {
this.名前 = 名前;
}
}
// プロトタイプメソッドを追加
学生.prototype.挨拶 = function() {
console.log("こんにちは、" + this.名前 + "です。");
};
// 使用例
let 生徒A = new 学生("太郎");
生徒A.挨拶(); // 結果: こんにちは、太郎です。
上記のプログラムは、「学生」というクラスを定義し、インスタンスごとに名前を持たせています。さらに、挨拶というプロトタイプメソッドを追加し、どのインスタンスでも同じメソッドを使えるようにしています。
まとめ
クラスは、共通のプロパティとメソッドを持つオブジェクトを作成するためのテンプレートです。プロトタイプメソッドを使うと、クラスの全インスタンスで共有されるメソッドを定義できます。プロトタイプを利用することで、メモリの使用量を抑え、効率的にプログラムを実行することができます。