"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > JavaScript에서 일등시민으로서의 기능

JavaScript에서 일등시민으로서의 기능

2024-11-02에 게시됨
검색:122

Functions as First-Class Citizens in JavaScript

일급 함수란 무엇입니까?

First-Class Citizens'는 함수를 다른 데이터 유형과 동일한 방식으로 사용할 수 있음을 의미합니다. 이는 함수를 변수에 할당하고, 다른 함수에 인수로 전달하고, 값으로 반환할 수 있음을 의미합니다. 이는 더 모듈화되고 재사용 가능한 코드를 작성할 수 있게 해주기 때문에 함수형 프로그래밍에서 중요한 개념입니다.

  • 변수에 할당됨
  • 인수로 전달됨 다른 함수에
  • 함수에서 값으로 반환됨

다음은 JavaScript에서 일급 시민으로 함수를 사용하는 몇 가지 예입니다.

  • 변수에 함수 할당: 변수에 함수를 할당하고 다른 변수와 마찬가지로 변수를 사용할 수 있습니다.

예:

const add = function(x, y) {
  return x   y;
}
console.log(add(5, 4)); // Output: 9
console.log(typeof(add)); // Output: function
  • 함수를 인수로 전달: 함수를 다른 함수에 인수로 전달할 수 있습니다. 이는 고차 함수나 콜백 함수를 설계하는 데 유용합니다.

예:

function greet(name, callback) {
  const message = "Hello, "   name   "!";
  callback(message);
}

function logMessage(message) {
  console.log(message); // Logs "Hello, Nozibul!"
}

greet("Nozibul", logMessage); // Logs "Hello, Nozibul!"
  • 함수를 값으로 반환: 함수는 내부에서 다른 함수를 반환할 수 있습니다. 이는 커링 함수와 같은 후속 작업에서 사용할 수 있는 함수를 만드는 데 유용합니다.

예:

function add(x) {
  return function(y) {
    return x   y;
  };
}

const addFive = add(5);
console.log(addFive(3)); // Output: 8
  • 배열에 함수 저장: 함수는 다른 값과 마찬가지로 배열에 저장할 수 있습니다.

예:

function add(a, b) {
  return a   b;
}

var arr = [];
arr.push(add);
console.log(arr); // Output: [ [Function: add] ]
console.log(arr[0](2, 5)); // Output: 7
  • 객체에 함수 저장: 함수는 객체의 속성으로 저장될 수 있습니다.

예:

function add(a, b) {
  return a   b;
}

var obj = {
  sum: add
};

console.log(obj.sum(5, 7)); // Output: 12
console.log(obj); // Output: { sum: [Function: add] }

이 예제는 JavaScript의 함수가 어떻게 일급 시민으로 처리되어 강력한 함수형 프로그래밍 패러다임을 허용하는지 보여줍니다.

릴리스 선언문 이 글은 https://dev.to/nozibul_islam_113b1d5334f/functions-as-first-class-citizens-in-javascript-4fji?1에서 복제됩니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3