작성자 프로필
라면과구공탄
자바스크립트 풀스택 개발자
2024.03.21

일급 객체 (First-class Object)

자바스크립트에서는 객체의 성질을 함수가 갖고 있음.

자바스크립트의 함수 = 일급 객체 (First-class Object)

함수가 일급 객체라는 것은 해당 언어의 함수가 다른 일반적인 데이터 타입과 동등한 취급을 받는다는 것을 의미함.

일급 객체의 특징

- 함수를 변수에 저장할 수 있다. (함수 표현식, function expression)

- 함수의 매개변수로 함수를 받을 수 있다. (콜백함수, callback function)

- 함수의 반환값으로 함수를 리턴할 수 있다. (고차함수, higher-order function

1. 변수에 저장할 수 있다.

함수를 값처럼 취급할 수 있으며, 변수에 저장된 함수를 호출할 수 있다.

함수 표현식(Function Expression) : 함수를 변수에 할당하여 사용하는 방식

        
        
      

greet 변수에 익명함수(Anonymous Function)을 할당함.

이 익명함수는 name이라는 파라미터를 받아서 콘솔에 해당 name을 출력하는 역할을 함.

2. 매개변수로 함수를 받을 수 있다.

함수는 다른 함수의 매개변수로 전달될 수 있으며, 이렇게 전달된 함수는 다른 함수 내에서 실행될 수 있다.

콜백함수(callback function) : 다른 함수(caller)의 인자(argument)로 들어오는 함수

        
        
      

3. 반환값으로 함수를 리턴할 수 있다.

함수는 다른 함수 내에서 생성되어 반환될 수 있으며, 이렇게 반환된 함수는 다른 곳에서 사용될 수 있음.

고차 함수(Higher order function) : 함수를 인자로 전달받거나 함수를 결과로 반환하는 함수

        
        
      

- `makeMultiplier` 함수는 인자로 받은 `factor`를 사용하여 새로운 함수를 생성하고 반환함. - 반환된 함수는 `factor`와 곱해진 값을 반환함. - 이때 반환된 함수는 **Closure**를 형성하여 `factor`의 값을 기억하고 있음. - 이후에 반환된 함수가 호출될 때마다 해당 `factor` 값을 사용하여 입력된 `number`를 곱한 값을 반환함.

스터디 프로필
자바스크립트 풀스택 개발자
의 다른 카테고리
0
👍1
👏0
🤔
댓글 작성