<script src="scripts/config.js"></script>
<script src="scripts/game.js"></script>
<script src="scripts/app.js"></script>
html 전체 구성 중 작은 부분의 기능을 구현할 script를 먼저 정의하고
전체에 해당하는 기능을 구현할(앞선 script 에서 정의한 함수를 실행할) script를 나중에 구현한다. 정상 작동!
app.js
const playerConfigOverlayElement = document.getElementById('config-overlay');
const backDropElement = document.getElementById('backdrop');
const editPlayer1BtnElement = document.getElementById('eidt-player-1-btn');
const editPlayer2BtnElement = document.getElementById('eidt-player-2-btn');
editPlayer1BtnElement.addEventListener('click', openPlayerConfig);
editPlayer2BtnElement.addEventListener('click', openPlayerConfig);
config.js
function openPlayerConfig() {
}
config.js 가 먼저 정의되었지만, eventLIstener는 전체 코드 실행 후에 클릭을 통해 실행되기 때문에, config.js에서 선언할 함수에 사용될 변수가 app.js(html head에서 후순위 정의)에 선언되어 있더라고 상관 없음!
function savePlayerConfig(event) {
event.preventDefault();
}
원래 default 설정은 http request를 서버에 보내는 것이나, 지금 연습문제에서는 자바스크랩트 코드내에서 해결하도록 설정 변경
(제출 후 새로고침으로 인한 게임 기록 삭제 방지 등)
function savePlayerConfig(event) {
event.preventDefault();
const formData = new formData(event.target);
//building object by 'new' instanciating object based on an object blueprint
const enteredPlayername = formData.get('playername');
}
new (...)를(청사진(blueprint)) 통해서 인스턴스(const (...))를 생성한다.
주물(blueprint)과 주물로 완성한 완성본(인스턴스 = const (...)) 1~... 라고 이해하면 될 듯 하다.
event.target
event: 창에서 일어날 일련의 행위
target: 이벤트를 통해 선택된 대상(element)
const formData = new FormData(evt.target);
여기서 문제가 발생해서 넘어가질 않는다.
예제랑 코드도 똑같은데 실행이 안 돼... 무슨일인 것이냐 ㅜㅜ
오류내용은 이렇다.
Uncaught ReferenceError: Cannot access 'formData' before initialization
at HTMLFormElement.savePlayerConfig (config.js:15:20)
내가 작성한 식은 클래스로 인스턴스를 생성하는 과정이 아닌 변수에 변수를 입력하는 식이었다.
그러니까 initialization이 될 리가 없지.
무튼 자동완성 시, 변수가 아닌 객체 FormData로 선택하여 코드 실행하니
구상한 대로 페이지에서 구현됐다.
type 에 따라 이렇게 당혹스러울 수도 있구나.. 느꼈다.
변수, 객체, 매서드, 프로퍼티, 속성.. 잘 확인해서 입력하자!
'developer > Udemy - 100일 코딩 챌린지' 카테고리의 다른 글
[Udemy - 100일 코딩 챌린지] 3/6 개발공부일지(if문 조건, return의 의미) (0) | 2023.03.06 |
---|---|
[Udemy - 100일 코딩 챌린지] 3/5 개발공부일지 (data-(property) (0) | 2023.03.05 |
[Udemy - 100일 코딩 챌린지] 3/1 개발공부일지(조건문, 반복문 연습문제) (0) | 2023.03.01 |
[Udemy - 100일 코딩 챌린지] 2/26 개발공부일지(반복문(for, while)) (0) | 2023.02.26 |
[Udemy - 100일 코딩 챌린지] 2/25 개발공부일지(javascript property(style), if문, boolean 등) (0) | 2023.02.25 |