1급 객체, 1급 함수, 고차 함수, 1차 함수, 2차 함수

3941 단어
일급 시민이라고도 하는 일급 객체는 다른 객체에서 허용되는 모든 작업을 지원하는 객체입니다. 일급 객체는 변수에 저장될 수 있고, 함수에 인수로 전달될 수 있고, 함수에 의해 반환될 수 있고, 데이터 구조에 저장될 수 있고, 고유한 속성과 메서드를 보유할 수 있습니다.

일급 함수는 객체로 취급되므로 상태와 동작을 가지며 함수에 인수로 전달되어 함수에서 반환될 수 있습니다. JavaScript에서 함수는 객체이므로 일급 함수가 객체와 동일한 작업을 지원하는 이유입니다.

// function definition
function logName(name) {
  console.log(name);
}

// function invocation
logName('Lukas'); // logs 'Lukas'

// stored as variable
const logNameAlt = logName;
logNameAlt('Lukas'); // logs 'Lukas'

// first-order function (`callback`) being passed in as argument
function higherOrderFunction(callback) {
  return callback; // first-order function being returned
}

const logNameHigher = higherOrderFunction(logName);
logNameHigher('Lukas'); // logs 'Lukas'

// stored in a data structure
const helpersArr = [logName];
const helpersObj = { logName };
helpersArr[0]('Lukas'); // logs 'Lukas'
helpersObj.logName('Lukas'); // logs 'Lukas'

// hold own property
logName.customProperty = 'Polak';
console.log(logName.customProperty); // logs 'Polak'


고차 함수는 함수를 인수로 받아들이거나, 함수를 반환하거나, 둘 다입니다. 고차 함수는 1차 함수를 사용하고, 고차 함수는 1차 함수 그 자체입니다.

1차 함수는 함수를 인수로 받아들입니다.

2차 함수는 함수를 받는 함수를 받습니다.

좋은 웹페이지 즐겨찾기