[JS] 함수-일급 객체

GDORI·2024년 8월 11일
0

JavaScript

목록 보기
10/28

일급 객체란?

일급 객체란 다른 객체들에게 일반적으로 적용되는 모든 연산을 다 지원하는 객체를 말한다.
그 중 함수가 일급 객체로 취급되는 5가지의 경우를 적어보겠다.

  1. 변수에 함수 할당
const testFunc = function() {
	console.log('TEST');
};
testFunc(); // 'TEST'

함수는 변수에 할당될 수 있으며, 값으로 취급되기 때문에 다른 변수처럼 할당할 수 있다.

  1. 함수 인자 지원
const mainFunc(func) {
	func();
}
const testFunc = function() {
	console.log('TEST');
};
mainFunc(testFunc); // 'TEST'

함수는 다른 함수에 인자로 전달될 수 있고 이를 콜백 또는 고차 함수를 작성할 수 있다.

  1. 함수를 반환
const mainFunc(num) {
	return function(x) {
      return x + num;
    }
}
const subFunc = mainFunc(10);

console.log(subFunc(20)); // 30 출력

위와 같이 함수를 반환할 수 있다.

  1. 객체 프로퍼티로 함수 할당
const human = {
  name:"카타리나",
  funcName: function() {
    console.log(`hello. ${this.name}`);
  }
};

human.funcName(); // hello. 카타리나 출력

객체의 프로퍼티로 함수를 할당할 수 있다.
객체 값 불러오듯이 사용하면 된다.

  1. 배열의 요소로 함수 할당
const calculator = [
  function(a, b) {
    return a+b;
  },
    function(a, b) {
    return a-b;
  },
    function(a, b) {
    return a*b;
  },
    function(a, b) {
    return a/b;
  }
];

console.log(calculator[0](1,2)); // 3 출력
console.log(calculator[1](1,2)); // -1 출력
console.log(calculator[2](1,2)); // 2 출력
console.log(calculator[3](1,2)); // 0.5 출력

배열의 요소로 할당될 수 있으며 인덱스를 사용하여 함수를 활용할 수 있다.

profile
하루 최소 1시간이라도 공부하자..

0개의 댓글