Testen Sie Ihre Fähigkeiten: Objektorientiertes JavaScript
Ziel dieses Fähigkeitstests ist es, Ihnen zu helfen, zu beurteilen, ob Sie unser Klassen in JavaScript Artikel verstanden haben.
Hinweis: Um Hilfe zu erhalten, lesen Sie unseren Testen Sie Ihre Fähigkeiten Benutzungsleitfaden. Sie können auch über einen unserer Kommunikationskanäle Kontakt mit uns aufnehmen.
OOJS 1
In dieser Aufgabe stellen wir Ihnen den Anfang einer Definition für eine Shape-Klasse zur Verfügung. Diese hat drei Eigenschaften: name, sides und sideLength. Diese Klasse modelliert nur Formen, bei denen alle Seiten die gleiche Länge haben, wie ein Quadrat oder ein gleichseitiges Dreieck.
Um die Aufgabe zu vervollständigen:
- Fügen Sie dieser Klasse einen Konstruktor hinzu. Der Konstruktor nimmt Argumente für die Eigenschaften
name,sidesundsideLengthund initialisiert sie. - Fügen Sie der Klasse eine neue Methode
calcPerimeter()hinzu, die ihren Umfang (die Länge des äußeren Randes der Form) berechnet und das Ergebnis in die Konsole loggt. - Erstellen Sie eine neue Instanz der
Shape-Klasse namenssquare. Geben Sie ihr einennamevonsquare,4sidesund einesideLengthvon5. - Rufen Sie Ihre
calcPerimeter()Methode auf der Instanz auf, um zu sehen, ob das Berechnungsergebnis wie erwartet in der Browser-Konsole angezeigt wird. - Erstellen Sie eine neue Instanz von
Shapenamenstriangle, mit einemnamevontriangle,3sidesund einersideLengthvon3. - Rufen Sie
triangle.calcPerimeter()auf, um zu überprüfen, ob es funktioniert.
class Shape {
name;
sides;
sideLength;
}
Klicken Sie hier, um die Lösung anzuzeigen
Ihr fertiges JS könnte in etwa so aussehen:
class Shape {
name;
sides;
sideLength;
constructor(name, sides, sideLength) {
this.name = name;
this.sides = sides;
this.sideLength = sideLength;
}
calcPerimeter() {
console.log(
`The ${this.name}'s perimeter length is ${this.sides * this.sideLength}.`,
);
}
}
const square = new Shape("square", 4, 5);
square.calcPerimeter();
const triangle = new Shape("triangle", 3, 3);
triangle.calcPerimeter();
OOJS 2
Nun ist es an der Zeit, etwas Vererbung ins Spiel zu bringen.
Um die Aufgabe zu vervollständigen:
- Erstellen Sie eine
Square-Klasse, die vonShapeerbt. - Fügen Sie
SquareeinecalcArea()Methode hinzu, die ihre Fläche berechnet. - Richten Sie den
Square-Konstruktor so ein, dass dienameEigenschaft derSquareObjektinstanzen automatisch aufsquareund diesidesEigenschaft automatisch auf4gesetzt werden. Beim Aufruf des Konstruktors sollten Sie daher nur diesideLengthEigenschaft angeben müssen. - Erstellen Sie eine Instanz der
Square-Klasse namenssquaremit geeigneten Eigenschaftswerten und rufen Sie ihrecalcPerimeter()undcalcArea()Methoden auf, um zu zeigen, dass es funktioniert.
class Shape {
name;
sides;
sideLength;
constructor(name, sides, sideLength) {
this.name = name;
this.sides = sides;
this.sideLength = sideLength;
}
calcPerimeter() {
console.log(
`The ${this.name}'s perimeter length is ${this.sides * this.sideLength}.`,
);
}
}
// Don't edit the code above here!
// Add your code here
Klicken Sie hier, um die Lösung anzuzeigen
Ihr fertiges JS könnte in etwa so aussehen:
// ...
// Don't edit the code above here!
class Square extends Shape {
constructor(sideLength) {
super("square", 4, sideLength);
}
calcArea() {
console.log(
`The ${this.name}'s area is ${this.sideLength * this.sideLength} squared.`,
);
}
}
const square = new Square(4);
square.calcPerimeter();
square.calcArea();