// 고차 함수 예시: 함수를 인자로 받는 함수
function repeatOperation(operation, times) {
for (let i = 0; i < times; i++) {
operation();
}
}
function sayHi() {
console.log("Hi there!");
}
// sayHi 함수를 인자로 전달
repeatOperation(sayHi, 3);
// 출력:
// Hi there!
// Hi there!
// Hi there!
// 고차 함수 예시: 함수를 반환하는 함수 (클로저)
function createGreeting(greeting) {
return function(name) {
return `${greeting}, ${name}!`;
};
}
const sayHello = createGreeting("Hello");
const sayGoodbye = createGreeting("Goodbye");
console.log(sayHello("Alice")); // "Hello, Alice!"
console.log(sayGoodbye("Bob")); // "Goodbye, Bob!"
map, filter, sort
등이 있다.
// 함수를 변수에 할당
const greet = function(name) {
return `Hello, ${name}!`;
};
console.log(greet("John")); // "Hello, John!"
// 함수를 다른 함수의 인자로 전달 (콜백)
function sayHello(callback, name) {
console.log(callback(name));
}
sayHello(greet, "Alice"); // "Hello, Alice!"
// 함수를 다른 함수에서 반환
function createMultiplier(multiplier) {
return function(num) {
return num * multiplier;
};
}
const double = createMultiplier(2);
console.log(double(5)); // 10