Menu
Coddy logo textTech

コンストラクタ関数

CoddyのJavaScriptジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 4/56。

コンストラクタ関数は、同じ構造と振る舞いを持つ複数のオブジェクトを作成できるようにする、JavaScriptの特別な関数です。

Personのコンストラクタ関数を定義します:

function Person(name, age) {
  this.name = name;
  this.age = age;
  this.greet = function() {
    return "Hello, my name is " + this.name;
  };
}

コンストラクタを使用して新しいPersonオブジェクトを作成します:

const john = new Person("John", 30);
const tyler = new Person("Tyler", 35);

上記のコードを実行すると、john は以下のプロパティを持つオブジェクトになります:

// john オブジェクトの内容:
{
  name: "John",
  age: 30,
  greet: function() { return "Hello, my name is John"; }
}

プロパティにアクセスし、メソッドを呼び出します:

console.log(john.name); // 出力:John
console.log(john.greet()); // 出力:Hello, my name is John
challenge icon

チャレンジ

  1. 3つの引数を受け取るBookという名前のコンストラクタ関数を作成してください:
  • title (String)
  • author (String)
  • pages (Number)

この関数は、これらを作成されたオブジェクトのプロパティとして設定する必要があります。

    2. 本に関する情報を文字列で返すgetSummaryというメソッドを追加してください: this.title + " was written by " + this.author + " and has " + this.pages + " pages";

チートシート

コンストラクタ関数は、同じ構造を持つ複数のオブジェクトを作成します。インスタンスを作成するには new キーワードを使用します:

function Person(name, age) {
  this.name = name;
  this.age = age;
  this.greet = function() {
    return "Hello, my name is " + this.name;
  };
}

const john = new Person("John", 30);
console.log(john.name); // 出力: John
console.log(john.greet()); // 出力: Hello, my name is John

自分で試してみよう

// TODO: 3つの引数(title、author、pages)を受け取るBookという名前のコンストラクタ関数を作成してください


// TODO: これらを作成されたオブジェクトのプロパティとして設定してください


// TODO: 本に関する情報を文字列で返すgetSummaryというメソッドを追加してください。
// 例: Harry Potter was written by Rowling and has 500 pages


// 以下のコードは変更しないでください
const inputTitle = inp[0];          // 1行目: 本のタイトル
const inputAuthor = inp[1];         // 2行目: 著者  
const inputPages = parseInt(inp[2]);// 3行目: ページ数

const book = new Book(inputTitle, inputAuthor, inputPages);
console.log(book.getSummary());
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

オブジェクト指向プログラミングのすべてのレッスン