OOJS 1
在此任务中,我们为您提供了一个 Shape 类的定义起始。它有三个属性:name、sides 和 sideLength。此类仅模拟所有边长都相同的形状,例如正方形或等边三角形。
完成任务
- 为此类添加一个构造函数。构造函数接收
name、sides和sideLength属性的参数,并初始化它们。 - 向类添加一个新的
calcPerimeter()方法,该方法计算其周长(形状外边缘的长度)并将结果记录到控制台。 - 创建一个名为
square的Shape类的新实例。为其name属性赋值为square,sides属性赋值为4,sideLength属性赋值为5。 - 调用实例上的
calcPerimeter()方法,以查看它是否按预期将计算结果记录到浏览器的控制台中。 - 创建一个名为
triangle的Shape类的新实例,其name属性赋值为triangle,sides属性赋值为3,sideLength属性赋值为3。 - 调用
triangle.calcPerimeter()来检查它是否工作正常。
js
class Shape {
name;
sides;
sideLength;
}
点击此处显示解决方案
您完成的 JS 可能看起来像这样
js
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
现在是时候加入一些继承了。
完成任务
- 创建一个继承自
Shape的Square类。 - 为
Square添加一个calcArea()方法,用于计算其面积。 - 设置
Square构造函数,以便Square对象实例的name属性自动设置为square,sides属性自动设置为4。因此,在调用构造函数时,您只需要提供sideLength属性。 - 创建一个名为
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(
`The ${this.name}'s perimeter length is ${this.sides * this.sideLength}.`,
);
}
}
// Don't edit the code above here!
// Add your code here
点击此处显示解决方案
您完成的 JS 可能看起来像这样
js
// ...
// 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();