Skip to content

Commit 454f019

Browse files
morinokamiazu
andauthored
fix: 「クラス」における誤字修正や説明の改善 (#1598)
* fix: 「クラス」における誤字修正や説明の改善 * Update source/basic/class/README.md Co-authored-by: azu <[email protected]> * Merge suggestions * Update source/basic/class/README.md Co-authored-by: azu <[email protected]> --------- Co-authored-by: azu <[email protected]>
1 parent 3448ba9 commit 454f019

File tree

1 file changed

+10
-11
lines changed

1 file changed

+10
-11
lines changed

source/basic/class/README.md

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -149,9 +149,8 @@ class MyClass {
149149
MyClass(); // => 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+
// 別々のプロパティ名がそれぞれ定義される
539538
class 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`メソッドを呼び出しています
641640
Arrow 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();
986985
example.prototypeMethod();
987986
```
988987

989-
しかしこの2つのメソッドの定義方法は、メソッドを定義先となるオブジェクトが実際に異なります
988+
しかしこの2つのメソッドの定義方法は、メソッドの定義先となるオブジェクトが異なります
990989

991990
まず、この2種類のメソッドがそれぞれ別の場所へと定義されていることを見ていきます。
992991
次のコードでは、`ConflictClass`クラスに`method`という同じ名前のメソッドをプロトタイプメソッドとインスタンスに対してそれぞれ定義しています。
@@ -1395,7 +1394,7 @@ console.log(instance.field); // => "子クラスで定義したフィールド"
13951394
Publicクラスフィールドは、このように親クラスで定義したフィールドも子クラスに定義されます。
13961395
一方で、Privateクラスフィールドは、このように親クラスで定義したフィールドは子クラスに定義されません。
13971396

1398-
次のコードでは、親クラスで定義したPrivateクラスフィールドを子クラスから参照してようとしています
1397+
次のコードでは、親クラスで定義したPrivateクラスフィールドを子クラスから参照しようとしています
13991398
しかし、`#parentField`は参照できずに構文エラーとなることがわかります。
14001399

14011400
<!-- textlint-disable eslint -->

0 commit comments

Comments
 (0)