First Class
JS뿐 아니라 몇몇 언어 또한 first class라는 개념을 가지고 있다.
JS에서의 function은 객체이자 first class이며 특징은 아래와 같다.
- 함수를 변수에 저장할 수 있다.
- 함수를 인자로 전달할 수 있다.
- 함수를 값처럼 리턴할 수 있다.
일급객체 개념은 클로저를 이해하는 데 중요한 개념이다.
함수를 변수에 저장
//1 함수를 변수에 저장할 수 있다
var stuff = function () {
console.log('this is first class');
};
stuff()
함수를 인자로 전달
//2 함수를 인자로 전달할 수 있다
function a(fn) {
fn();
}
a(function () {
console.log("this is argument func");
});
함수를 값으로 리턴
//3 함수를 값으로 리턴할 수 있다
function b() {
return function c() {
console.log("this is return func");
};
}
b()();
리턴값이 함수이므로 ()로 실행시켜 준다.
혹은 리턴값을 1번 법칙에 따라 변수에 저장하고 실행시켜 줄 수도 있다.
'Front-end > JavaScript' 카테고리의 다른 글
JS 클로저 4편 - Currying(함수 커링 기법) (0) | 2023.01.14 |
---|---|
JS 클로저 3편 - HOF(고계함수, Higher Order Function) (0) | 2023.01.14 |
JS 클로저 1편 - 함수는 객체다 (0) | 2023.01.03 |
JS Type 4편 - 동적 타입(static&dynamic type) (0) | 2022.12.31 |
JS Type 3편 - type Coercion(==, === 차이) (0) | 2022.12.30 |