JavaScriptオブジェクトコンストラクター
例
ノート
コンストラクター関数の名前の最初の文字を大文字にすることをお勧めします。thisについて
コンストラクター関数では、this
に値はありません。これは新しいオブジェクトの代替です。新しいオブジェクトが作成されると、新しいオブジェクトになります。関連項目:
JavaScriptthisチュートリアルオブジェクトタイプ(Blueprints)(Classes)
前の章の例は限られています。それらは単一のオブジェクトのみを作成します。
時々、"設計図"同じ「タイプ」のオブジェクトを多数作成する場合があります。
「オブジェクト型」を作成する方法は、オブジェクトコンストラクター関数を使用することです。
上記の例では、function Person()
オブジェクトコンストラクタ関数です。
同じタイプのオブジェクトは、new
キーワードを指定してコンストラクター関数を呼び出すことによって作成されます。
thisは何ですか?
JavaScriptでは、キーワードはオブジェクトthis
を指します。
どのthis
オブジェクトがどのように呼び出されるか(使用または呼び出されるか)によって決まります。
キーワードthis
は、使用方法に応じてさまざまなオブジェクトを指します。
オブジェクトメソッドでは、オブジェクトthis を参照します。 |
単独で、グローバルオブジェクトthis を参照します。 |
関数内では、グローバルオブジェクトthis を参照します。 |
関数のstrictモードでは、this はこれは未定義です。 |
イベントでは、イベントを受信した要素this を参照します。 |
call() 、apply() 、bind() などのメソッドは、これを任意のオブジェクトに参照できます。 |
オブジェクトへのプロパティの追加
既存のオブジェクトに新しいプロパティを追加するのは簡単です:
プロパティがmyFatherに追加されます。myMotherにではありません。(他人のオブジェクトに対してではありません)。
オブジェクトへのメソッドの追加
既存のオブジェクトに新しいメソッドを追加するのは簡単です:
メソッドがmyFatherに追加されます。myMotherにではありません。(他人のオブジェクトに対してではありません)。
コンストラクターへのプロパティの追加
既存のオブジェクトに新しいプロパティを追加するのと同じ方法で、オブジェクトコンストラクターに新しいプロパティを追加することはできません。
コンストラクターに新しいプロパティを追加するには、それをコンストラクター関数に追加する必要があります。
例
このようにして、オブジェクトのプロパティにデフォルト値を設定できます。
コンストラクターへのメソッドの追加
コンストラクター関数はメソッドを定義することもできます。
例
既存のオブジェクトに新しいメソッドを追加するのと同じ方法で、オブジェクトコンストラクターに新しいメソッドを追加することはできません。
オブジェクトコンストラクターへのメソッドの追加は、コンストラクター関数内で行う必要があります。
例
changeName()関数は、nameの値を個人のlastNameプロパティに割り当てます。
JavaScriptは、thisをmyMotherに「置き換える」ことで、あなたがどの人のことを話しているのかを認識します。
組み込みのJavaScriptコンストラクター
JavaScriptには、ネイティブオブジェクトの組み込みコンストラクタがあります。
Math()
オブジェクトがリストにありません。Math
はグローバルオブジェクトです。new
キーワードはMath
では使用できません。
知ってますか?
上記のように、JavaScriptにはプリミティブデータ型String
、Number
、 Boolean
のオブジェクトバージョンがあります。しかし、複雑なオブジェクトを作成する理由はありません。プリミティブ値ははるかに高速です。
new String()
の代わりに文字列リテラル""
を使用します。
new Number()
の代わりに数値リテラル50
を使用します。
new Boolean()
の代わりにブール値リテラルtrue / false
を使用します。
new Object()
の代わりにオブジェクトリテラル{}
を使用します。
new Array()
の代わりに配列リテラル[]
を使用します。
new RegExp()
の代わりにパターンリテラル/()/
を使用します。
new Function()
の代わりに関数式() {}
を使用してください。
例
文字列オブジェクト
通常、文字列はプリミティブとして作成されます。firstName = "John"
ただし、文字列は、を使用してオブジェクトとして作成することもできますnew
キーワード。firstName = new String("John")
この章で文字列をオブジェクトとして作成してはならない理由を学びますJS文字列。
数値オブジェクト
通常、数値はプリミティブとして作成されます。x = 30
ただし、数値は、を使用してオブジェクトとして作成することもできます。new
キーワード:x = new Number(30)
この章で数値をオブジェクトとして作成してはならない理由を学びますJSナンバーズ.
ブールオブジェクト
通常、ブール値はプリミティブとして作成されます。x = false
ただし、ブール値は、を使用してオブジェクトとして作成することもできますnew
キーワード:x = new Boolean(false)
この章でブール値をオブジェクトとして作成してはならない理由を学びますJSブール値.
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。