>  기사  >  웹 프론트엔드  >  JS에서 함수를 다른 함수의 매개변수로 전달하는 방법 요약

JS에서 함수를 다른 함수의 매개변수로 전달하는 방법 요약

黄舟
黄舟원래의
2017-03-01 15:11:031113검색

오늘 요소에 대한 이벤트를 등록할 때 addEventListener를 사용하는 중에 문제가 발생했습니다. 이전에도 이 문제를 겪었던 것 같습니다. 이를 요약할 필요가 있다고 생각합니다. 먼저 다음 코드를 살펴보세요. 다음 코드에 문제가 있다고 생각하시나요? id3에 해당하는 요소를 클릭하면 id3이 팝업되는 것이 가능한가요?

예제 1

var obj3=document.getElementById('id3');
obj3.addEventListener('click',curClick('id1'),true);
function curClick(id){
		alert(id);
}

대답은 '아니요'입니다. 이 코드 줄은 ID3이 팝업되기 때문에 내가 원하는 효과를 얻을 수 없습니다. . id3에 해당하는 요소를 클릭하면 페이지에 아무 일도 일어나지 않습니다.

그래서 코드를 다음 두 가지 상황으로 변경했습니다.

예제 2

var obj3=document.getElementById('id3');
	obj3.addEventListener('click',function(e){curClick('id3');stopPropagation(e)},true);

	function curClick(id){
		alert(id);
	}

예시 3

var obj1=document.getElementById('id1'); 
obj1.addEventListener('click',curClick1,true);
function curClick1(){
  alert('okey');
}


이번에는 실행이 정상적으로 되는 이유는 무엇인가요?

JS 세계에서는 curClick('id3')이 curClick('id3')을 매개변수로 전달하는 대신 직접 호출하기 때문에 매개변수로 전달하려면. , 매개변수를 전달할 필요가 없으면 함수 이름을 직접 전달하면 됩니다. 매개변수를 전달해야 하는 경우 두 가지 해결 방법이 있습니다.

방법 1: 익명 함수의 도움 , 전달할 함수, 익명 함수에 배치하고 익명 함수를 예 2

와 같은 매개변수로 사용합니다. 예: use function(){myfunction(val1,val2, ...);}를 매개변수 전송으로 사용합니다.

두 번째: 전달해야 할 함수를 다시 작성합니다

function curClick1(val){
<span style="white-space:pre">	</span>return function(){
		alert(val);
	};
}

위는 JS에서 함수를 다른 함수의 매개변수로 전달하는 방법을 요약한 것입니다. 더 많은 관련 내용 PHP 중국어 홈페이지(www.php.cn)를 주목해주세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.