이벤트리스너-콜백함수 질문

19.08.15 19:21 작성 조회수 223

0

끝말잇기 강좌에서 질문이 생겨 질문 남깁니다!

제가 강의를 들으면서 작성한 코드인데, 끝말잇기 코드에요!(밑에)

그런데 function call_back(e)부분에서 call_back함수는 분명히 밑에 인자 하나를 받게 되어 있는데

late_form.addEventListener('submit', call_back); 부분에서는 인자없이 call_back만 쓰게 되어 ㅣ있더라구요! 

여기서 late_form.addEventListener('submit', call_back(e)); 를 사용하면 브라우저에서 실행이 안되던데, 혹시 왜 그럴까요?!

더불어 구글링할때 뭐라고 검색하면 도움을 얻을 수 있을지도 알려주시면 감사할거 같아요..!

 

정말 감사드립니다 

 

var b = document.body;

var ex_word = document.createElement('div');
ex_word.textContent = '제로초';
b.append(ex_word);

var late_form = document.createElement('form');
b.append(late_form);

var my_word = document.createElement('input');
late_form.append(my_word);

var sending_button = document.createElement('button');
sending_button.textContent = '전송!';
late_form.append(sending_button);

var result = document.createElement('div');
b.append(result);

late_form.addEventListener('submit', call_back);

function call_back(e) {
e.preventDefault();
if (my_word.value[0] == ex_word.textContent[ex_word.textContent.length - 1]) {
result.textContent = '맞았습니다';
ex_word.textContent = my_word.value;
my_word.value = '';
my_word.focus();
} else {
result.textContent = '틀렸습니다';
my_word.value = '';
my_word.focus();
}
}



답변 3

·

답변을 작성해보세요.

1

addEventListener('click' function(e) {})

addEventListener('click', callback)

function callback(e) {}

가 같은 겁니다.

1

hjoo님의 프로필

hjoo

2019.08.15

late_form.addEventListener('submit', call_back(e));

라고 하면 실행될 함수가 들어갈 자리에 함수가 아닌 이미 연산된 리턴값이 들어가서 안되는거네요~~

call_back(e) 는 함수가 아니라 e 를 넣은 결과값이니까요~

0

미니몽님의 프로필

미니몽

질문자

2019.08.16

안녕하세요 답변 감사합니다! 

근데 처음에 함수를 정의할 때, call_back(e)라고 인자를 준거는 함수 사용시 인자가 필요한 함수 아닌가요??

그러면 late_form.addEventListener('submit', call_back); 에서는 인자를 어디서 받을 수 있는 것인가요??

답변 정말 감사합니다 :)