new キーワード
CoddyのJavaScriptジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 5/56。
JavaScriptにおけるnewキーワードは、オブジェクトを作成するためのテンプレートとして機能するコンストラクタ関数のインスタンスを作成するために使用されます。
Personのコンストラクタ関数を作成します:
function Person(name, age) {
this.name = name;
this.age = age;
this.greet = function() {
return "Hello, my name is " + this.name;
};
}new キーワードを使用してインスタンスを作成します:
const john = new Person("John", 30);上記のコードを実行した後、john はプロパティとメソッドを持つオブジェクトになります:
john.nameは "John" ですjohn.ageは 30 ですjohn.greet()は "Hello, my name is John" を返します
newキーワードがない場合、thisは新しいインスタンスではなく、グローバルオブジェクト(またはstrictモードではundefined)を参照することになります。
チャレンジ
Carオブジェクトを作成し、その説明を出力する
carオブジェクトを作成するコンストラクタ関数が与えられています。あなたのタスクは以下の通りです:
newキーワードを使用して新しいcarオブジェクトを作成し、名前として"Honda"を、年として2018を渡します- 作成したcarオブジェクトの
getDescriptionメソッドを呼び出します - 結果をコンソールに出力します
チートシート
new キーワードは、オブジェクトのテンプレートとして機能するコンストラクタ関数のインスタンスを作成します。
コンストラクタ関数を定義します:
function Person(name, age) {
this.name = name;
this.age = age;
this.greet = function() {
return "Hello, my name is " + this.name;
};
}new を使用してインスタンスを作成します:
const john = new Person("John", 30);プロパティとメソッドにアクセスします:
john.name // "John"
john.age // 30
john.greet() // "Hello, my name is John"new がないと、this は新しいインスタンスではなく、グローバルオブジェクト(または厳格モードでは undefined)を参照します。
自分で試してみよう
function Car(name, year) {
this.name = name;
this.year = year;
this.getDescription = function() {
return "This is a " + this.name + " from " + this.year;
};
}
// TODO: newキーワードを使用して新しいcarオブジェクトを作成し、名前として"Honda"を、年として2018を渡します
// TODO: carオブジェクトのgetDescriptionメソッドを呼び出し、その結果をコンソールに出力します
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。