2016-07-20 3 views
1

나는 함수를 작성했으며 여러 상황에서 함수를 호출하려고한다. 그 뒤에 괄호없이 작성하면 함수를 호출하는 경우에만 작동, 어떤 경우함수를 호출 할 때 괄호 사용하기

var responsive = function(){ 
    $('#menuicon').toggleClass('menuicon-res'); 
    $('.fixed-menu-item').toggleClass('res'); 
} 

: 여기에 기능입니다 다른에서

$('#menuicon').click(responsive); 

작성하는 경우, 유사한 경우, 함수를 호출 만 작동 뒤에 괄호 :

$('#top').click(function(){ 
    $('html, body').animate({scrollTop: 0},500); 
    responsive(); 
}); 

제가 제 경우 콜백 함수 및 두 번째 경우에 반환 (O를 괄호/W) (W/괄호) 번째 반환 이해 생각 함수의 출력. 누구나이 두 시나리오에서 내 기능 변경을 호출하는 방법을 설명 할 수 있습니까?

감사합니다. 이 기능을 할당하는

첫 번째 시나리오에서는 CPR

+2

괄호 사용은 함수를 호출합니다. 그것들이 없으면 함수 참조 일뿐입니다. –

+0

비슷하게,'var foo = responsive'와'var foo = responsive()'의 차이점을 생각해보십시오. – apsillers

답변

3

당신의 클릭 이벤트에서 실행하고, 클릭 이벤트는 호출을 할 것입니다. 두 번째 시나리오에서는 함수를 직접 호출합니다.

+0

감사합니다. 그게 설명해. – CandyPaintedRIMS

+0

나는'var responsive = function() {...};'이라는 사실에 주목할 것이다. 그래서, 당신은 말 그대로'responsive'와'function() {...}'을 같은 의미로 사용할 수 있습니다 (간단한 대수 개념). – Sam

2

당신이 이벤트가

//this will execute when "#menuitem" is clicked 
$('#menuicon').click(responsive); 

두 번째 경우는 그냥 여기, 스스로를 호출하는 트리거 전달 된 함수를 호출 이벤트 리스너로 함수를 후킹되는 얘기 첫 번째 경우 responsive을 실제로 호출하지 않으면 아무 것도하지 않습니다.

$('#top').click(function(){ 
    $('html, body').animate({scrollTop: 0},500); 
    responsive(); 
}); 
관련 문제