@@ -13,7 +13,7 @@ const tanaka = {
1313} ;
1414```
1515
16- 同じ属性を持つ<Term type="javascriptObject">オブジェクト</Term>を複数生成するときに役立つのが** <Term type="javascriptClass">クラス</Term>** です。<Term type="javascriptClass">クラス</Term>では、<Term type="javascriptObject">オブジェクト</Term>の<Term type="javascriptProperty">プロパティ</Term>を予め設定しておくだけでなく、下の<Term type="javascriptMethod">メソッド</Term>の節で説明するように、<Term type="javascriptProperty">プロパティ</Term>を引数にもつような関数も設定しておくことができます。これにより、同じコードを何度も書く必要がなくなるというメリットがあります。<Term type="javascriptClass">クラス</Term>は、同じ<Term type="javascriptProperty">プロパティ</Term>を持つ<Term type="javascriptObject">オブジェクト</Term>を統一的に扱うための仕組みであり、<Term type="javascriptObject">オブジェクト</Term>の設計図と言えます。
16+ 同じ属性を持つ<Term type="javascriptObject">オブジェクト</Term>を複数生成するときに役立つのが<Term type="javascriptClass">** クラス** </Term>です。<Term type="javascriptClass">クラス</Term>では、<Term type="javascriptObject">オブジェクト</Term>の<Term type="javascriptProperty">プロパティ</Term>を予め設定しておくだけでなく、下の<Term type="javascriptMethod">メソッド</Term>の節で説明するように、<Term type="javascriptProperty">プロパティ</Term>を引数にもつような関数も設定しておくことができます。これにより、同じコードを何度も書く必要がなくなるというメリットがあります。<Term type="javascriptClass">クラス</Term>は、同じ<Term type="javascriptProperty">プロパティ</Term>を持つ<Term type="javascriptObject">オブジェクト</Term>を統一的に扱うための仕組みであり、<Term type="javascriptObject">オブジェクト</Term>の設計図と言えます。
1717
1818次のコードでは、先ほど作った `tanaka` のように `name` や `age` という<Term type = " javascriptProperty" >プロパティ</Term >を持つ<Term type = " javascriptObject" >オブジェクト</Term >の設計図として、<Term type = " javascriptClass" >クラス</Term > ` Student ` を定義しています。<Term type = " javascriptClass" >クラス</Term >では、この例の ` age ` <Term type = " javascriptProperty" >プロパティ</Term >のように、デフォルトの値を設定することができます。
1919
@@ -31,7 +31,7 @@ class Student {
3131
3232:::
3333
34- ` new ` 演算子を<Term type = " javascriptClass" >クラス</Term >に対して適用すると、設計図に基づいて<Term type = " javascriptObject" >オブジェクト</Term >が作成されます。こうしてできた<Term type = " javascriptObject" >オブジェクト</Term >を、もとになった<Term type = " javascriptClass" >クラス</Term >の** <Term type = " javascriptInstance" >インスタンス</Term >** と呼びます。今回の ` age ` <Term type = " javascriptProperty" >プロパティ</Term >のように、<Term type = " javascriptClass" >クラス</Term >の<Term type = " javascriptProperty" >プロパティ</Term >にデフォルトの値が設定されている場合、新たな値を代入するまではデフォルト値が入ります。もちろん、<Term type = " javascriptProperty" >プロパティ</Term >に新たな値を代入してデフォルト値を書き換えることもできます。
34+ ` new ` 演算子を<Term type = " javascriptClass" >クラス</Term >に対して適用すると、設計図に基づいて<Term type = " javascriptObject" >オブジェクト</Term >が作成されます。こうしてできた<Term type = " javascriptObject" >オブジェクト</Term >を、もとになった<Term type = " javascriptClass" >クラス</Term >の<Term type = " javascriptInstance" >** インスタンス** </Term >と呼びます。今回の ` age ` <Term type = " javascriptProperty" >プロパティ</Term >のように、<Term type = " javascriptClass" >クラス</Term >の<Term type = " javascriptProperty" >プロパティ</Term >にデフォルトの値が設定されている場合、新たな値を代入するまではデフォルト値が入ります。もちろん、<Term type = " javascriptProperty" >プロパティ</Term >に新たな値を代入してデフォルト値を書き換えることもできます。
3535
3636``` javascript
3737const tanaka = new Student (); // Student クラスをもとにオブジェクトを作成する
@@ -70,7 +70,7 @@ document.write(emptyFunction()); // 値を返さない関数の戻り値は unde
7070
7171同じ<Term type = " javascriptProperty" >プロパティ</Term >を持つ<Term type = " javascriptObject" >オブジェクト</Term >に対しては、同じような処理を行うことが多いです。例えば、学生はたいてい最初の授業で自己紹介をします。そこで、 ` Student ` <Term type = " javascriptClass" >クラス</Term >に、自己紹介をする関数 ` introduceSelf() ` を設定してみましょう。
7272
73- オブジェクトに対して定義されている関数を** <Term type = " javascriptMethod" >メソッド</Term >** と呼びます。<Term type = " javascriptMethod" >メソッド</Term >の定義は<Term type = " javascriptClass" >クラス</Term >定義の中で行われますが、関数と異なり、` function ` キーワードを必要としません。
73+ オブジェクトに対して定義されている関数を<Term type = " javascriptMethod" >** メソッド** </Term >と呼びます。<Term type = " javascriptMethod" >メソッド</Term >の定義は<Term type = " javascriptClass" >クラス</Term >定義の中で行われますが、関数と異なり、` function ` キーワードを必要としません。
7474
7575``` javascript
7676class Student {
@@ -141,7 +141,8 @@ tanaka.introduceSelf();
141141
142142## <Term type = " javascriptConstructor" >コンストラクタ</Term >
143143
144- ** <Term type = " javascriptConstructor" >コンストラクタ</Term >** は、<Term type = " javascriptInstance" >インスタンス</Term >を作成するタイミング(` new ` 演算子を<Term type = " javascriptClass" >クラス</Term >に適用するタイミング)で実行される特殊な<Term type = " javascriptMethod" >メソッド</Term >です。<Term type = " javascriptConstructor" >コンストラクタ</Term >となる<Term type = " javascriptMethod" >メソッド</Term >は ` constructor ` という名前で定義する必要があります。<Term type = " javascriptConstructor" >コンストラクタ</Term >を定義すると、` new Student ` を実行して<Term type = " javascriptInstance" >インスタンス</Term >を生成するときに<Term type = " javascriptProperty" >プロパティ</Term >の設定も同時に行うことができます。
144+ { /* prettier-ignore */ }
145+ <Term type = " javascriptConstructor" >** コンストラクタ** </Term >は、<Term type = " javascriptInstance" >インスタンス</Term >を作成するタイミング(` new ` 演算子を<Term type = " javascriptClass" >クラス</Term >に適用するタイミング)で実行される特殊な<Term type = " javascriptMethod" >メソッド</Term >です。<Term type = " javascriptConstructor" >コンストラクタ</Term >となる<Term type = " javascriptMethod" >メソッド</Term >は ` constructor ` という名前で定義する必要があります。<Term type = " javascriptConstructor" >コンストラクタ</Term >を定義すると、` new Student ` を実行して<Term type = " javascriptInstance" >インスタンス</Term >を生成するときに<Term type = " javascriptProperty" >プロパティ</Term >の設定も同時に行うことができます。
145146
146147``` javascript
147148class Student {
0 commit comments