JSFiddle - React, Tailwind, and code Playground
by Vitaliy
JavaScript
function TV(){
let power = false;
let channel = 1;
function checkNumber(number){
if(isNaN(number) || number < 1 || number > 99 || number % parseInt(number) > 0){
throw new Error('Invalid channel number');
}
}
return {
power(){
if(power){
power = false;
console.log('TV is off');
}else{
power = true;
console.log(`TV is on.The channel is #${channel}`);
}
},
switchChannelTo(number){
checkNumber(number);
channel = number;
console.log(`Switch to channel #${channel}`);
},
switchChannelForward(){
channel = channel < 99 ? ++channel : 1;
console.log(`Switch forward to channel #${channel}`);
},
switchChannelBackward(){
channel = channel > 1 ? --channel : 99;
console.log(`Switch backward to channel #${channel}`);
}
};
}
const tv1 = new TV();
tv1.power();
tv1.switchChannelForward();
tv1.switchChannelForward();
tv1.switchChannelForward();
tv1.switchChannelBackward();
tv1.switchChannelBackward();
tv1.switchChannelTo(57);
tv1.power();
tv1.power();