Files
freeCodeCamp/curriculum/challenges/german/02-javascript-algorithms-and-data-structures/es6/use-class-syntax-to-define-a-constructor-function.md
2023-02-16 12:04:56 +01:00

2.9 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
587d7b8b367417b2b2512b53 Verwende die Klassensyntax, um eine Konstruktorfunktion zu definieren 1 301212 use-class-syntax-to-define-a-constructor-function

--description--

ES6 bietet eine neue Syntax zum Erstellen von Objekten, die das Schlüsselwort class verwendet.

In ES5 kann ein Objekt erzeugt werden, indem eine constructor-Funktion definiert und das new-Schlüsselwort zur Objekt-Instanziierung verwendet wird.

In ES6 verfügt eine class-Deklaration über eine constructor-Methode, welche über das new-Schlüsselwort aufgerufen wird. Wenn die Methode constructor nicht explizit definiert ist, wird sie implizit ohne Argumente definiert.

// Explicit constructor
class SpaceShuttle {
  constructor(targetPlanet) {
    this.targetPlanet = targetPlanet;
  }
  takeOff() {
    console.log("To " + this.targetPlanet + "!");
  }
}

// Implicit constructor 
class Rocket {
  launch() {
    console.log("To the moon!");
  }
}

const zeus = new SpaceShuttle('Jupiter');
// prints To Jupiter! in console
zeus.takeOff();

const atlas = new Rocket();
// prints To the moon! in console
atlas.launch();

Es ist zu beachten, dass das class-Schlüsselwort eine neue Funktion deklariert, zu der ein Konstruktor hinzugefügt wird. Dieser Konstruktor wird aufgerufen, wenn new aufgerufen wird, um ein neues Objekt zu erstellen.

Beachte: UpperCamelCase sollte per Konvention für ES6-Klassennamen verwendet werden, wie in SpaceShuttle oben verwendet.

Die constructor-Methode ist eine spezielle Methode zur Erstellung und Initialisierung eines Objekts, das mit einer Klasse erstellt wurde. You will learn more about it in the Object Oriented Programming section of the JavaScript Algorithms And Data Structures Certification.

--instructions--

Verwende das class-Schlüsselwort und schreibe einen constructor, um die Vegetable-Klasse zu erstellen.

Mit der Vegetable-Klasse kannst du ein Gemüseobjekt mit einer name-Eigenschaft erstellen, die an den constructor übergeben wird.

--hints--

Vegetable sollte eine class mit einer definierten constructor-Methode sein.

assert(
  typeof Vegetable === 'function' && typeof Vegetable.constructor === 'function'
);

Das class-Schlüsselwort sollte verwendet werden.

assert(code.match(/class/g));

Vegetable sollte instanziiert werden können.

assert(() => {
  const a = new Vegetable('apple');
  return typeof a === 'object';
});

carrot.name sollte carrot zurückgeben.

assert(carrot.name == 'carrot');

--seed--

--seed-contents--

// Only change code below this line

// Only change code above this line

const carrot = new Vegetable('carrot');
console.log(carrot.name); // Should display 'carrot'

--solutions--

class Vegetable {
  constructor(name) {
    this.name = name;
  }
}
const carrot = new Vegetable('carrot');