2016-10-06 1 views
0

글쎄, jQuery로 시작하고 함수 안에 괄호를 포함하거나 포함하지 않는 함수의 차이점에 대해 궁금합니다.jQuery의 함수 안에 괄호가 있거나없는 함수를 작성하는 것의 차이점은 무엇입니까?

$(document).ready(test); 

이 :

function test(){ 
    alert("pen pineapple apple pen"); 
} 

: 나는 다음과 같은 기능이있는 경우 예를 들어 는 "펜 파인애플 사과 펜"

:

$(document).ready(test()); 

을 모두 같은 결과를 보여

+0

참고 사항 [이 질문에 대한 답변] (http://stackoverflow.com/questions/3246928/in-javascript-does-it-make-a-difference-if-i-call-a-function-with- 괄호) . – nnnnnn

답변

3

함수 끝 부분에 괄호 ()을 넣으면 해당 함수가 발생합니다 함수가 즉시 호출되도록하고 반환 값을 식에 사용합니다.

이 코드 $(document).ready(test);은 콜백 기능으로 test을 사용하고 있습니다. 본질적으로 다음과 같이 말합니다 : 문서가 준비되면, 내가 제공하는 함수를 호출하십시오 (test).

이 코드 $(document).ready(test());은 즉시 값을 호출하고 값을 반환 한 다음 해당 값을 ready 메서드로 전달합니다. test이 여기에 다른 함수를 반환 할 가능성이 있으며, 이는 다시 필요한 콜백 함수로 작동합니다. 실수로 괄호를 포함하는 사람이 우연히 포함되어서는 안되는 경우에도 실수 일 수 있습니다.

+0

fwiw,'$ (document) .ready (undefined)'는 오류가 아닙니다 – naomik

+0

@nbrooks 맞습니다. 또한 콘솔에서'function test() {alert ("pen pineapple apple pen"); }'함수를 호출하면'test()'라는 함수가 호출됩니다. 그러나 괄호없이 함수를 호출하면 –

+0

@naomik이라는 표현식을 반환합니다. 구문 오류가 아니며 jQuery도 없지만 가능성이 있습니다 프로그래머의 실수. – nnnnnn

관련 문제