@@ -149,9 +149,8 @@ class MyClass {
149149MyClass (); // => TypeError: class constructors must be invoked with |new|
150150```
151151
152- また、コンストラクタは初期化処理を書く場所であるため、` return ` 文で値を返すべきではありません。
153- JavaScriptでは、コンストラクタ関数が任意のオブジェクトを返すことが可能ですが、行うべきではありません。
154- なぜなら、コンストラクタは` new ` 演算子で呼び出し、その評価結果はクラスのインスタンスを期待するのが一般的であるためです。
152+ また、コンストラクタ関数は` return ` 文で任意のオブジェクトを返すことが可能ですが、行うべきではありません。
153+ なぜなら、クラスを` new ` 演算子で呼び出し、その評価結果はクラスのインスタンスを期待するのが一般的であるためです。
155154
156155次のコードのようにコンストラクタで返した値が` new ` 演算子で呼び出した際の返り値となります。 このような書き方は混乱を生むため避けるべきです。
157156
@@ -481,7 +480,7 @@ console.log(arrayLike.items.join(", ")); // => "1, 2, , , "
481480
482481## [ ES2022] Publicクラスフィールド {#public-class-fields}
483482
484- クラスでは、` constructor ` メソッドの中でクラスの状態であるインスタンスのプロパティの初期化することを紹介しました 。
483+ クラスでは、` constructor ` メソッドの中でクラスの状態であるインスタンスのプロパティを初期化することを紹介しました 。
485484先ほども紹介した` Counter ` クラスでは、` constructor ` メソッドの中で` count ` プロパティの初期値を` 0 ` として定義しています。
486485
487486``` js
@@ -535,7 +534,7 @@ console.log(counter.count); // => 1
535534{{book.console}}
536535<!-- doctest:meta:{ "ECMAScript": "2022" } -->
537536``` js
538- // 別々のプロパティ名はそれぞれ定義される
537+ // 別々のプロパティ名がそれぞれ定義される
539538class MyClass {
540539 publicField = 1 ;
541540 constructor (arg ) {
@@ -637,7 +636,7 @@ console.log(counter.count); // => 1
637636
638637クラスフィールドでの` this ` は、Arrow Functionと組み合わせると強力です。
639638
640- 次のコードでは、` up ` メソッドに ` this.increment ` メソッドを呼び出す関数をArrow Function定義しています 。
639+ 次のコードでは、` up ` メソッドをArrow Functionとして定義し、関数内では ` this.increment ` メソッドを呼び出しています 。
641640Arrow Functionで定義した関数における` this ` は、どのような呼び出し方をしても変化しません(「[ Arrow Functionでコールバック関数を扱う] [ ] 」を参照)。
642641そのため、` up ` メソッドはどのような呼び方をした場合でも` this ` がクラスのインスタンスとなるため、確実に` increment ` メソッドを呼び出せます。
643642
@@ -723,7 +722,7 @@ setterは`=`での代入に反応します。そのため、`constructor`の中
723722
724723## [ ES2022] Privateクラスフィールド {#private-class-fields}
725724
726- クラスフィールド構文で次のように書くと、定義したプロパティはクラスのインスタンス化した後に外からも参照できます 。
725+ クラスフィールド構文で次のように書くと、定義したプロパティはクラスをインスタンス化した後に外からも参照できます 。
727726そのため、Publicクラスフィールドと呼ばれます。
728727
729728``` js
@@ -920,9 +919,9 @@ console.log(arrayWrapper.length); // => 3
920919
921920### [ ES2022] 静的クラスフィールド {#static-class-fields}
922921
923- ES2022で追加されたクラスフィールドも、インスタンスではなくクラス自体に定義する静的クラスフィールドが利用できます 。
922+ ES2022で追加されたクラスフィールドでは、インスタンスではなくクラス自体に定義する静的クラスフィールドも利用できます 。
924923
925- 静的クラスフィールドはフィールドの前に、 ` static ` をつけるだけです。
924+ 静的クラスフィールドは、フィールドの前に ` static ` をつけるだけです。
926925静的クラスフィールドで定義したプロパティは、クラス自体のプロパティとして定義されます。
927926次のコードでは、Public静的クラスフィールドを使って` Colors ` クラス自体にプロパティを定義しています。
928927
@@ -986,7 +985,7 @@ example.instanceMethod();
986985example .prototypeMethod ();
987986```
988987
989- しかしこの2つのメソッドの定義方法は、メソッドを定義先となるオブジェクトが実際に異なります 。
988+ しかしこの2つのメソッドの定義方法は、メソッドの定義先となるオブジェクトが異なります 。
990989
991990まず、この2種類のメソッドがそれぞれ別の場所へと定義されていることを見ていきます。
992991次のコードでは、` ConflictClass ` クラスに` method ` という同じ名前のメソッドをプロトタイプメソッドとインスタンスに対してそれぞれ定義しています。
@@ -1395,7 +1394,7 @@ console.log(instance.field); // => "子クラスで定義したフィールド"
13951394Publicクラスフィールドは、このように親クラスで定義したフィールドも子クラスに定義されます。
13961395一方で、Privateクラスフィールドは、このように親クラスで定義したフィールドは子クラスに定義されません。
13971396
1398- 次のコードでは、親クラスで定義したPrivateクラスフィールドを子クラスから参照してようとしています 。
1397+ 次のコードでは、親クラスで定義したPrivateクラスフィールドを子クラスから参照しようとしています 。
13991398しかし、` #parentField ` は参照できずに構文エラーとなることがわかります。
14001399
14011400<!-- textlint-disable eslint -->
0 commit comments