클래스 예제와 콜백함수

class Counter{
  constructor(runEveryFiveTimes){
    this.counter = 0;
    this.callback = runEveryFiveTimes;
  }
  
  increase(){
    this.counter++;
    console.log(this.counter);
    if(fhis.counter % 5 === 0 ){
        this.callback && this.callback(this.counter);
    }
  }
}
// class에 모든것을 정의하면 컨트롤하기 힘들고, 재사용이 힘들다.
// 콜백함수를 이용해서 만들게되면 쓰는 사람이 자신이 원하는대로 코드를 변경 할 수 있게됨
// -> 클레스의 재사용성이 높아짐

function printSomething(num){
   console.log(`yo!,${num}`);
}

function alertNum(num){
    alert(`Wow!,${num}`);
}

const collCounter = new Counter(); 

const printSomething = new Counter(printSomething); 
const alertNum = new Counter(alertNum); 

coolCounter.increase(); // 1
coolCounter.increase(); // 2
coolCounter.increase(); // 3
coolCounter.increase(); // 4
coolCounter.increase(); // yo!

Last updated