자바스크립트 함수호출방법 차이점
함수 호출 방법에 대해 궁금합니다.
function run(){ console.log("run"); }자바스크립트에서 함수호출시 소괄호 사용여부에 대해 질문드립니다.
run(), run 이렇게 호출이 가능하네요
addEventListener('click', run) 에서도 이렇게 사용도 하는걸 봤습니다.
run()은 함수가 동작하고 run은 함수의 내용이 그대로 출력되는건 알겠습니다.
어떻게 다른건가요?
run은 그 함수를 호출한 결과...가 아닌, 그냥 그 함수입니다.
함수를 호출하려면 그 뒤에 괄호룰 붙여서 run()으로 써야 합니다.
addEventListener('click', run)의 경우에는 그 함수를 인자로 넘길 뿐, 그 함수를 호출하지 않습니다.
나중에 클릭됐을 때 그 함수가 호출되도록 콜백을 등록 하는 것입니다.
콜백 함수에 대해 찾아보시면 좋을 듯 합니다.
자바스크립트에서 function 은 반드시 뒤에 () 를 붙여주어야 실행이 됩니다.
function 은 말 그대로 function 이 무엇으로 정의되어있는지를 보여줍니다.
일종에 변수와 동일하다고 보시면됩니다.
var a = "AA"
var fun = function func(){
console.log("BB")
}
라고하면 a 는 그냥 변수 a를 보여줍니다. 그 어떠한 행위도 더 하지않죠
마찬가지로 fun 은 그냥 func 라는 함수를 보여줍니다. 정의된 그대로를 보여주는것이죠.
반대로 뒤에 () 를 붙이게되면 해당하는 정의된 함수를 실행하겠다 라는 의미입니다.
고로 함수를 실행할때는 뒤에 ()를 붙여주시고,
함수의 내용이 보고싶으시다면 그냥 함수 이름만 적으시면됩니다.