일급 객체

손영훈·2023년 6월 23일
post-thumbnail

일급 객체

  • 함수를 변수와 같이 다루는 언어에 있는 개념
  • 자바스크립트의 함수도 일급 객체 함수는 기본적으로 객체이다.
//  함수의 자료형

function addNumbers (a, b) { return a + b; }
console.log(typeof addNumbers);

일급 객체의 특성

  • 상수 또는 변수에 할당될 수 있음
  • 다른 함수에 인자로 전달될 수 있음
  • 다른 함수의 결과값으로서 반환될 수 있음

할당

function isOddNum (number) {
  console.log(
    (number % 2 ? '홀' : '짝')
    + '수입니다.'
  );
  return number % 2 ? true : false;
};

const checkIfOdd = isOddNum; // isOddNum이라는 함수를 checkIfOdd라는 상수로 할당시킴.


console.log()로 숫자를 입력하여 결과 출력


객체와 배열의 값으로도 할당 가능

객체

let person = { // person이라는 변수에 각각의 프로퍼티를 선언한다.
  name: '홍길동',
  age: 30,
  married: true,
  introduce: function (formal) {
    return formal
    ? '안녕하십니까. 손영훈 대리라고 합니다.' //true
    : '안녕하세요, 손영훈이라고 해요.'; // false
  }
};

배열

let arithmetics = [
  (a, b) => a + b,
  (a, b) => a - b,
  (a, b) => a * b,
  (a, b) => a / b
];

for (arm of arithmetics) { //변수 arithmetics의 배열을 for of문으로 arm의 이름으로 받아 실행하게됨.
  console.log(arm(5, 3));
}

  • 이전엔 객체가 들어간 프로퍼티를 method라고 불렀다.
  • 하지만 ES6부터 method의 정의가 달라졌다.

인자로 전달

  • 함수가 다른 함수를 인자로 전달받음
  • 전달받는 함수 : 고차 함수
  • 전달되는 함수 : 콜백 함수
let list = [1, 2, 3, 4, 5];

function doInArray (array, func) { // (인자, 함수)
  for (item of array) {
    func(item); //  
  }
}

// console.log - console이란 객체에서 log란 키에 할당된 함수
doInArray(list, console.log);
  • doInArray : 고차함수
  • console.log : 콜백함수
profile
메모장

0개의 댓글