'this' 키워드를 이용한 자바스크립트 온라인 투표 처리 방법

자바스크립트를 사용하여 온라인 투표를 처리하는 경우, ‘this’ 키워드는 매우 유용한 도구입니다. ‘this’ 키워드는 현재 실행 중인 함수의 컨텍스트를 참조하며, 객체 내부에서 현재 객체에 접근할 때 많이 사용됩니다. 이번 블로그 포스트에서는 ‘this’ 키워드를 이용하여 자바스크립트 온라인 투표 처리 방법을 알아보겠습니다.

투표 처리 클래스 생성

먼저, 투표 처리를 위한 클래스를 생성해야 합니다. 아래의 코드는 ‘this’ 키워드를 사용하여 투표 처리 클래스를 정의한 예시입니다.

class VotingSystem {
  constructor(question, options) {
    this.question = question;
    this.options = options;
    this.votes = {};
  }

  castVote(option) {
    if (this.options.includes(option)) {
      this.votes[option] = this.votes[option] + 1 || 1;
      console.log('투표가 성공적으로 처리되었습니다.');
    } else {
      console.log('유효하지 않은 투표 옵션입니다.');
    }
  }

  getResults() {
    return this.votes;
  }
}

위의 코드는 VotingSystem 클래스를 정의하고, 생성자 함수를 통해 질문과 옵션 배열을 받습니다. 또한 castVote 메소드를 통해 특정 옵션에 대한 투표를 처리하고, getResults 메소드를 통해 투표 결과를 반환합니다.

투표 시스템 사용

이제, 위에서 정의한 투표 처리 클래스를 사용하여 온라인 투표 시스템을 구현해보겠습니다. 아래의 코드는 예시입니다.

const votingSystem = new VotingSystem('가장 좋아하는 색은 무엇인가요?', ['빨강', '파랑', '노랑']);

votingSystem.castVote('빨강');
votingSystem.castVote('빨강');
votingSystem.castVote('파랑');
votingSystem.castVote('초록');

console.log(votingSystem.getResults());

위의 코드에서는 VotingSystem 클래스의 인스턴스를 생성하고, castVote 메소드를 호출하여 각 옵션에 대한 투표를 처리합니다. 마지막으로 getResults 메소드를 호출하여 투표 결과를 출력합니다.

투표 결과는 다음과 같이 출력됩니다.

{ 빨강: 2, 파랑: 1 }

위의 예시에서는 ‘빨강’ 옵션에 2표, ‘파랑’ 옵션에 1표가 투표되었습니다.

#javascript #투표 #this키워드 #온라인투표