brunch

You can make anything
by writing

C.S.Lewis

by 김선우 Jan 24. 2017

자바스크립트의 함수는 일급 함수다.

자바스크립트에서 객체는 일급 객체이다. 함수 또한 객체로 표현하기 때문에 일급 함수도 만족한다.

즉 함수를 변수에 할당할 수도 있고 객체에 추가할 수도 있으며  다른 함수에 인수로 전달하거나 함수에서 함수를 반환할 수도 있다. 참조 값을 쓸 수 있는 곳이라면 어디든 함수도 사용할 수 있다.


우선 일급 시민(first class citizen)에 대해 알아보자.


일급 시민의 조건은 3가지다.

 변수에 담을 수 있다.

인자로 전달할 수 있다.

반환값으로 전달할 수 있다.

이외에도 런타임 생성이 가능, 익명으로 생성 가능을 주장하는 사람도 있다.


일급 객체(first class object)

: 객체를 일급 시민으로 취급한다는 것이다.


일급 함수(first class function)

: 함수를 일급 시민으로 취급한다는 것이다.



함수를 인수로 전달하는 예시)

var numbers = [1,5,8,3,2,7,9,10];
numbers.sort(function(first, second) {
     return first - second;
});

console.log(numbers);
// output : [1, 2, 3, 5, 7, 8, 9, 10]


참조 : 객체지향 자바스크립트의 원리

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari