5、定义三个名为SLOW、MEDIUM和FAST的常量,值分别为1、2、3,表示风扇的速度
设计一个名为Fan的类来代表风扇,这个类包括:
(1)属性speed,表示风扇的速度(默认值为SLOW)
(2)属性on,表示风扇是否打开(默认为false)
(3)属性radius,表示风扇的半径(默认为5)
(4)属性color,表示风扇的颜色(默认为blue)
(5)定义四个属性的getter/setter方法
(6)一个名为toString的方法返回描述风扇的字符串。如果风扇是打开的,那么该方法返回风扇的速度、颜色、半径组合而成的字符串;如果风扇没有打开,该方法返回一个由”fan is off”和风扇颜色及半径组合而成的字符串。
测试程序:创建两个Fan对象。第一个对象设置为最大速度、半径为10、颜色为yellow、状态为打开;第二个对象设置为中等速度、半径为5、颜色为blue、状态为关闭
let SLOW = 1
let MEDIUM = 2
let FAST = 3
class Fun {
constructor(speed = 'SLOW', on = false, radius = 5, color = 'blue') {
this._speed = speed
this._on = on
this._radius = radius
this._color = color
}
get speed() {
return this._speed
}
get on() {
return this._on
}
get radius() {
return this._radius
}
get color() {
return this._color
}
set speed(val) {
return this.speed.val
}
set on(val) {
return this.on.val
}
set radius(val) {
return this.radius.val
}
set color(val) {
return this.color.val
}
toString() {
if (this.on) {
console.log(`${this.speed} ${this.color} ${this.radius}`);
} else {
console.log(`fan is off ${this.color} ${this.radius}`)
}
}
}
let fun1 = new Fun(FAST, 10, 'yellow', true
)
fun1.toString()
console.log('----------------');
let fun2 = new Fun(MEDIUM, 5, 'bule', false
)
fun2.toString()