λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
μΉ΄ν…Œκ³ λ¦¬ μ—†μŒ

[JavaScript]μ½œλ°±ν•¨μˆ˜(Callback Function)

by sukii 2024. 1. 2.
λ°˜μ‘ν˜•

πŸ€”μ½œλ°±ν•¨μˆ˜(Callback Function) : ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜λ‘œ ν•¨μˆ˜λ₯Ό 전달받아 μ €μž₯ν•˜μ—¬ ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œ λ§€κ°œλ³€μˆ˜λ₯Ό μ‚¬μš©ν•΄ ν˜ΈμΆœλ˜λŠ” ν•¨μˆ˜

 

μ‹€μŠ΅μ½”λ“œπŸ‘©‍πŸ’»

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JavaScript</title>
</head>
<body>
	<script type="text/javascript">
   	//1-μ„ μ–Έν•¨μˆ˜)
	//ν•¨μˆ˜λͺ…을 μž‘μ„±ν•˜μ—¬ μ„ μ–Έν•¨μˆ˜ μ„ μ–Έ	
	function display1() {
		alert("display1 ν•¨μˆ˜μ˜ λͺ…λ Ή μ‹€ν–‰");
	}
	
	//ν•¨μˆ˜λͺ…은 ν•¨μˆ˜λ₯Ό κ΅¬λΆ„ν•˜κΈ° μœ„ν•œ μ‹λ³„μžλ‘œ λ‚΄λΆ€μ μœΌλ‘œ ν•¨μˆ˜λ³€μˆ˜μ²˜λŸΌ μ„ μ–Έν•¨μˆ˜λ₯Ό μ €μž₯
	alert(display1);//ν•¨μˆ˜λͺ… 좜λ ₯ - μ„ μ–Έν•¨μˆ˜ 좜λ ₯
	display1();//ν•¨μˆ˜λͺ…μœΌλ‘œ μ„ μ–Έν•¨μˆ˜ 호좜
	
   	//2-읡λͺ…ν•¨μˆ˜)
	//ν•¨μˆ˜λͺ…을 μž‘μ„±ν•˜μ§€ μ•Šμ€ 읡λͺ…ν•¨μˆ˜λ₯Ό μ„ μ–Έν•˜μ—¬ λ³€μˆ˜μ— μ €μž₯
	var display2=function() {
		alert("display2 ν•¨μˆ˜μ˜ λͺ…λ Ή μ‹€ν–‰");
	}	

	//alert(display2);//λ³€μˆ˜λͺ… 좜λ ₯ - 읡λͺ…ν•¨μˆ˜ 좜λ ₯
	//display2();//λ³€μˆ˜λͺ…μœΌλ‘œ 읡λͺ…ν•¨μˆ˜ 호좜
	
   	//3-μ½œλ°±ν•¨μˆ˜)
	function display(callback) {
		callback();//λ§€κ°œλ³€μˆ˜μ— μ €μž₯된 ν•¨μˆ˜ 호좜 - μ½œλ°±ν•¨μˆ˜
	}
	
   	//예제1)
   	//1&2번 ν•¨μˆ˜λ₯Ό 3번 μ½œλ°±ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜λ‘œ μ €μž₯ν•΄ ν•¨μˆ˜ 호좜
	//display(display1);//ν•¨μˆ˜ ν˜ΈμΆœμ‹œ λ§€κ°œλ³€μˆ˜μ— ν•¨μˆ˜λͺ…μœΌλ‘œ μ„ μ–Έν•¨μˆ˜λ₯Ό 전달
	//display(display2);//ν•¨μˆ˜ ν˜ΈμΆœμ‹œ λ§€κ°œλ³€μˆ˜μ— ν•¨μˆ˜λ³€μˆ˜λ‘œ 읡λͺ…ν•¨μˆ˜λ₯Ό 전달
	
  	//예제2)
	//ν•¨μˆ˜ ν˜ΈμΆœμ‹œ 읡λͺ…ν•¨μˆ˜λ₯Ό μ„ μ–Έν•˜μ—¬ λ§€κ°œλ³€μˆ˜μ— μ „λ‹¬ν•˜μ—¬ ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œ 호좜 κ°€λŠ₯
	display(function() {
		alert("읡λͺ…ν•¨μˆ˜μ˜ λͺ…λ Ή μ‹€ν–‰");
	});
	
   	//예제3)
	//ν•¨μˆ˜ ν˜ΈμΆœμ‹œ λ§€κ°œλ³€μˆ˜μ— ν™”μ‚΄ν‘œν•¨μˆ˜λ₯Ό μ„ μ–Έν•˜μ—¬ μ „λ‹¬ν•˜μ—¬ ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œ 호좜 κ°€λŠ₯
	//display(() => alert("읡λͺ…ν•¨μˆ˜μ˜ λͺ…λ Ή μ‹€ν–‰"));
	</script>
</body>
</html>
λ°˜μ‘ν˜•