# ì½ë°± í¨ì(Callback function)
```
ì½ë°± í¨ìë ë¤ë¥¸ í¨ìì ì¸ìë¡ ì ë¬ëì´ í¸ì¶ëë í¨ì를 ë§íë¤.
(í¹ì ìì
ì´ ìë£ë í, ì¤íí ì½ë를 ì ìíë ë°©ë²)
```
1. 기본ì ì¸ ì½ë°± í¨ì
```javascript
function greet(name) {
console.log(`Hello, ${name}`);
}
function processUserInput(callback) {
const name = 'codej625';
callback(name); // greet í¨ì를 í¸ì¶
}
processUserInput(greet); // Hello, codej625
```
2. ë¹ë기 ìì
ììì ì½ë°±
```javascript
function fetchData(callback) {
setTimeout(() => {
const data = { id: 1, title: 'callback' };
callback(data); // ë°ì´í°ê° ì¤ë¹ëë©´ ì½ë°± í¸ì¶
}, 1000);
}
fetchData((data) => {
console.log('Fetched data:', data); // 1ì´ íì ì¤í
});
```
3. 모ëí ë° ì¬ì¬ì©ì±
```javascript
function processUserInput(callback) {
const name = 'Alice';
callback(name); // ì¬ì©ì ì
ë ¥ì ì²ë¦¬íë ì½ë°±
}
processUserInput((name) => {
console.log(`Hello, ${name}!`); // ë¤ë¥¸ ê³³ììë ëì¼í ì½ë°±ì ì¬ì©í ì ìì
});
// ë¤ë¥¸ ìì
ì ëí´ ê°ì ì½ë°±ì ì¬ì¬ì©
processUserInput((name) => {
console.log(`Welcome, ${name}!`);
});
```
```
ì½ë°± í¨ìë ë¹ë기 íë¡ê·¸ëë°(ìë²ìì ë°ì´í°ë¥¼ ê°ì ¸ì¤ê±°ë íì¼ì ì½ë ë±ì ìì
ì´ ìë£ë í ì¤í),
ì´ë²¤í¸ ì²ë¦¬ìì ì주 ì¬ì©ëë¤.
ëí í¨ì를 모ëííì¬ ì¬ì¬ì©ì±ì ëì¼ ì ìë¤.
```