このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

確認テスト: オブジェクト指向 JavaScript

この確認テストの目的は、JavaScript でのクラスの記事を理解できたかどうかを評価することです。

メモ: 手助けが必要な場合は、確認テスト使用ガイドをお読みください。また、コミュニケーションチャネルのいずれかを使用して、私たちに連絡することもできます。

OOJS 1

この課題では、Shape クラスの定義から始めましょう。このクラスには name, sides, sideLength の 3 つのプロパティがあります。このクラスは、正方形や正三角形のように、すべての辺の長さが同じである図形のみをモデルとしています。

課題を完了するには、次のようにしてください。

  1. このクラスにコンストラクターを追加しましょう。コンストラクターは name, sides, sideLength プロパティを引数に取り、初期化します。
  2. このクラスに新しいメソッド calcPerimeter() を追加しましょう。このメソッドは、外周の長さ(図形の外縁の長さ)を計算し、その結果をコンソールにログ出力します。
  3. Shape クラスの新しいインスタンス square を作成しましょう。名前に squaresides4sideLength5 を指定しましょう。
  4. このインスタンスに対して calcPerimeter() メソッドを呼び出して、計算結果が期待通りにブラウザーコンソールにログ出力されるかどうかを確認しましょう。
  5. 新しい Shape のインスタンスとして triangle を作成しましょう。nametrianglesides3sideLength3 とします。
  6. triangle.calcPerimeter()を呼び出して、問題なく動作することを確認しましょう。
js
class Shape {
  name;
  sides;
  sideLength;
}
ここをクリックすると、模範解答を表示します。

最終的な JavaScript は、次のようになるでしょう。

js
class Shape {
  name;
  sides;
  sideLength;

  constructor(name, sides, sideLength) {
    this.name = name;
    this.sides = sides;
    this.sideLength = sideLength;
  }

  calcPerimeter() {
    console.log(
      `${this.name} の外周の長さは ${this.sides * this.sideLength} です。`,
    );
  }
}

const square = new Shape("square", 4, 5);
square.calcPerimeter();

const triangle = new Shape("triangle", 3, 3);
triangle.calcPerimeter();

OOJS 2

それでは、いくつか継承を加えてみましょう。

課題を完了するには、次のようにしてください。

  1. Shape を継承した Square クラスを作成しましょう。
  2. 領域の面積を計算する calcArea() メソッドを Square に追加しましょう。
  3. Square オブジェクトインスタンスの name プロパティには自動的に square が設定され、sides プロパティには自動的に 4 が設定されるようにコンストラクターを設定しましょう。コンストラクターを呼び出す際には、sideLength プロパティだけを提供すればよいことになります。
  4. 適切なプロパティ値を持つ Square クラスのインスタンス square を作成し、その calcPerimeter()calcArea() メソッドを呼び出して、問題なく動作することを示しましょう。
js
class Shape {
  name;
  sides;
  sideLength;

  constructor(name, sides, sideLength) {
    this.name = name;
    this.sides = sides;
    this.sideLength = sideLength;
  }

  calcPerimeter() {
    console.log(
      `${this.name} の外周の長さは ${this.sides * this.sideLength} です。`,
    );
  }
}

// ここから上のコードは変更しないでください。

// ここにコードを追加してください。
ここをクリックすると、模範解答を表示します。

最終的な JavaScript は、次のようになるでしょう。

js
// ...
// ここから上のコードは変更しないでください。

class Square extends Shape {
  constructor(sideLength) {
    super("square", 4, sideLength);
  }

  calcArea() {
    console.log(
      `${this.name} の面積は ${this.sideLength * this.sideLength} 平方です。`,
    );
  }
}

const square = new Square(4);

square.calcPerimeter();
square.calcArea();