버튼 onclick 이벤트를 저렇게 적으니 tenzies가 false일 때는 잘 작동하다가 true가 되니까(같은 숫자로 다 맞춰서 게임 성공했을 때) 갑자기 에러가 났다. setDice를 익명 함수 안에 안 넣고 바로 적어서 그런가? 예전에도 setter 함수를 이벤트 핸들러 함수로 직접 바로 넣었을 때 에러가 났는데.
그래서 익명 함수를 먼저 적고 그 안에 setter 함수, rollDice를 적었더니 에러는 안 나지만 rollDice가 실행이 안 됐다. tenzies가 true일 때 setDice는 잘 작동했다. 어떤 함수를 이벤트핸들러 안에 콜백함수로 직접 넣을 때는 괄호를 생략해야 되지만(괄호 넣으면 콜백 함수가 아니라 이벤트가 실행되든 말든 그냥 앱 실행 시 바로 실행되는 함수가 돼 버리니까), 이 경우에는 익명함수 안에서 호출되고 있으므로 ()를 써 줘야 실행이 되는 것 같다.
이렇게 괄호를 적어주니까 다 잘 작동한다!
이렇게 적어도 잘 작동한다! 삼항 연산자 안의 두 함수를 모두 익명 함수 안에 넣을 필요는 없고,
중요한 건
setter 함수를 이벤트 핸들러가 직접 콜백하게 하지 않고 익명 함수 안에 넣어 주는 것
인 듯하다.
참고: 게임 방식