일급객체(First-class Object)란 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킨다. [위키백과]
자바스크립트의 함수는 일급 객체로서 다른 객체와 동등한 취급을 받는다.
이는 함수를 다양한 상황에서 유연하게 활용할 수 있다는 의미이며, 함수형 프로그래밍의 기반이 되는 특징이다.
함수를 일급 객체로 취급하는 것은 자바스크립트에서 강력하고 다양한 기능을 구현할 수 있도록 한다.
특징은 다음과 같다!!!
1. 변수에 함수를 할당할 수 있다.
const sayHello = function() {
console.log('Hello!');
};
sayHello(); // 'Hello!'
이 특징때문에 생기는 일:
1. 콜백함수 - 매개변수로써 쓰이는 함수
2. 고차함수 : 함수를 인자로 받거나 return하는 함수(가 대체함)
2. 매개변수로 전달할 수 있따.
함수는 다른 함수의 매개변수로 전달될 수 있다.
이를 통해 함수를 다른 함수의 동작에 적용할 수 있다.
function greet(name) {
console.log(`Hello, ${name}!`);
}
function processGreeting(callback) {
callback('John');
}
processGreeting(greet); // 'Hello, John!'
3. 반환값으로 사용할 수 있다.
function createMultiplier(factor) {
return function(number) {
return number * factor;
};
}
const double = createMultiplier(2);
console.log(double(5)); // 10
4. 객체의 속성이나 배열의 요소로 사용할 수 있다.
함수는 객체의 속성이나 배열의 요소로 사용될 수 있으며, 필요에 따라 동적으로 호출될 수 있다.
// 객체의 프로퍼티로 함수를 할당
const person = {
name: 'John',
sayHello: function() {
console.log(`Hello, my name is ${this.name}`);
}
};
person.sayHello(); // "Hello, my name is John" 출력
// 배열의 요소로 함수를 할당
const myArray = [
function(a, b) {
return a + b;
},
function(a, b) {
return a - b;
}
];
console.log(myArray[0](5, 10)); // 15 출력
console.log(myArray[1](10, 5)); // 5 출력
ex. 이렇게 활용할 수 있다.
// 고차함수
function multiplyBy(num) {
return function(x) {
return x * num;
}
}
function add(x, y) {
return x + y;
}
const multiplyByTwo = multiplyBy(2);
const multiplyByThree = multiplyBy(3);
const result = add(multiplyByTwo(5), multiplyByThree(10)); // 35 출력'JavaScript > study' 카테고리의 다른 글
| [javascript] 데이터타입의 종류 (기본형, 참조형) (0) | 2023.05.23 |
|---|---|
| [javascript] Map/Set 컬렉션 객체 (자료구조) (0) | 2023.05.22 |
| [javascript] ES6 템플릿 리터럴 (Template literals), 백틱 (0) | 2023.05.22 |
| [javascript] ES6 단축 속성명 (0) | 2023.05.22 |
| [javascript] ES6 구조 분해 할당 (0) | 2023.05.22 |