Skip to main content

クラス

@serverSerrverlesskiy

JavaScriptはプロトタイプ継承モデルを使用します。各オブジェクトはプロトタイプオブジェクトのフィールド(プロパティ)とメソッドを継承します。

クラス

キーワードclassは、クラスを定義するために使用されます。

class MyClass {
// методы класса
constructor() { ... }
method1() { ... }
method2() { ... }
method3() { ... }
...
}

この構文 はクラス宣言と呼ばれます。

Class

クラス内のメソッドはコンマで区切られていません

クラスの構文は、オブジェクトリテラルとは異なります。 クラス内ではカンマは必要ありません。

クラスに名前がない場合があります。 クラス式を使用すると、クラスを変数に割り当てることができます:

const UserClass = class {
// クラス本体
}

クラスはモジュールとしてエクスポートできます。 デフォルトのエクスポートの例を次に示します。

export default class User {
// クラス本体
}

そして、これが名前付きエクスポートの例です:

export class User {
// クラス本体
}

クラスは、クラスのインスタンスを作成するときに役立ちます。 インスタンスは、説明されているデータと動作を含むオブジェクトです クラス。

new演算子は、次のようにJavaScriptでクラスのインスタンスを作成します: instance = new Class()

たとえば、 new演算子を使用して、User👤クラスのインスタンスを作成できます。

const myUser = new User()

new User()Userクラスのインスタンスを作成します👤。

初期化:constructor()

spangeBob

constructor(...)は、インスタンスを初期化するクラス本体の特別なメソッドです。 これは、フィールドの初期値を設定したり、オブジェクトを調整したりできる場所です。

次の例では、コンストラクターがnameフィールドの初期値を設定します。

class User {
constructor(name) {
this.name = name
}
}

Userクラスのconstructorは、this.nameフィールドの初期値を設定するために使用される1つのnameパラメータを取ります。

コンストラクター内では、thisの値は新しく作成されたインスタンスと同じです。

クラスをインスタンス化するために使用される引数は、コンストラクターパラメーターになります:

Live Editor
Result
Loading...

コンストラクター内のnameパラメーターはJonSnowに設定されています。

クラスのコンストラクターを定義しない場合は、デフォルトのコンストラクターが作成されます。 デフォルトのコンストラクターは、インスタンスを変更しない空の関数⚙️です。

クラスはconstructorという名前のメソッドを1つだけ持つことができます。

クラスの拒否

私たちの学校では、React を使用してモバイルアプリケーションを開発する方法を教えています。ここで、イノベーションは React Hooks です。を使用すると、クラスを記述せずに React の状態やその他の機能を使用できます。 したがって、クラスを放棄したので、クラスについて話すことはもう意味がありません。

問題?

Problem

に書き込む Discord または電報 チャット, また、私たちの購読 ニュース

質問:

Question

クラスを定義するためのキーワード🗝️は何ですか?

  1. constructor()
  2. クラス
  3. this

クラス内のメソッドはコンマで区切られていますか?

  1. はい
  2. いいえ

1つのクラスにいくつのconstructor()メソッドを含めることができますか?

  1. 無制限
  2. 最大10
  3. 1つだけ

このレッスンでどれだけ学んだかを理解するために、モバイルアプリ このトピックに関する私たちの学校。

Sumerian school

リンク:

  1. MDN web docs
  2. Learn JavaScript

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Philipp Dvinyaninov


Dmitriy Vasilev

💵

Resoner2005

🐛 🎨 🖋

Navernoss

🖋 🐛 🎨

EnglishMoji!