戻る

クラスの宣言
クラスの宣言

class キーワードを使ってクラスを定義します。
このクラスをインスタンス化してオブジェクトを作成します。

[サンプル]
copy
class A{
	constructor(num)
	{
		this.data = num;
	}
	printNum()
	{
		console.log(this.data);
	}
}
const cls1 = new A(1);
const cls2 = new A(2);
cls1.printNum();//1
cls2.printNum();//2
class
クラスを定義するためのキーワードです。
(例)
class クラス名

constructor
クラスのインスタンスが作成されるときに自動的に呼び出される特別なメソッドです。
ここでインスタンスの初期化(プロパティの値を設定など)を行います。
(例)
constructor (引数)
1つ以上の引数を設定可能

this
現在作成されているインスタンス自身を指します。
this.プロパティ名のように使用することで、インスタンスのプロパティにアクセスしたり、値を設定したりできます。
(例)
constructor (num){
{
  this.data = num;
}
クラスにdataという変数を持った状態にできます。
this.dataにnumを設定したことになるため、
クラスにnumの数字情報を持ったdata変数を扱えるようになります。

new
定義したクラスから新しいオブジェクト(インスタンス)を作成するためのキーワードです。
new クラス名()のように使用します。
(例)
const cls1 = new A(1);
クラスAをインスタンス化してcls1オブジェクトを作成しています。

メソッド
クラス内で定義された関数です。
インスタンスが持つ振る舞いを定義します。
(例)
cls1.printNum();
クラスAに存在するprintNumメソッドを実行しています。

同じクラスからインスタンス化したオブジェクトでも
constructorに設定した値を取得した結果より、異なるオブジェクトになっていることがわかります。
このようにクラスを定義することで、一つのクラスの機能を別々の用途に使用できることができます。


[サンプル]
copy
class B{
	printNum()
	{
		console.log(3);
	}
}
const cls3 = new B();
cls3.printNum();//3

//[error]
//cls2 = new B();//Uncaught TypeError: Assignment to constant variable.
//const cls2 = new B();//Uncaught SyntaxError: Identifier 'cls2' has already been declared 

constructorを使用しないクラスの使用例です。
const cls3 = new B();
クラスBをインスタンス化してcls3オブジェクトを作成しています。

cls2オブジェクトは宣言済みです。
cls2 = new B();
オブジェクトの作成に失敗します。

const cls2 = new B();
宣言済みのオブジェクトを再定義しようとしているためエラーとなります。



戻る


著作権情報
ホームページおよプリ等に掲載されている情報等については、いかなる保障もいたしません。
ホームページおよびアプリ等を通じて入手したいかなる情報も複製、販売、出版または使用させたり、
または公開したりすることはできません。
当方は、ホームペーよびアプリ利用したいかなる理由によっての障害等が発生しても、
その結果ホームページおよびアプリ等を利用された本人または他の第三者が被った損害について
一切の責任を負わないものとします。