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
,sides
undsideLength
und 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 einenname
vonsquare
,4
sides
und einesideLength
von5
. - 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
Shape
namenstriangle
, mit einemname
vontriangle
,3
sides
und einersideLength
von3
. - 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 vonShape
erbt. - Fügen Sie
Square
einecalcArea()
Methode hinzu, die ihre Fläche berechnet. - Richten Sie den
Square
-Konstruktor so ein, dass diename
Eigenschaft derSquare
Objektinstanzen automatisch aufsquare
und diesides
Eigenschaft automatisch auf4
gesetzt werden. Beim Aufruf des Konstruktors sollten Sie daher nur diesideLength
Eigenschaft angeben müssen. - Erstellen Sie eine Instanz der
Square
-Klasse namenssquare
mit 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();