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();