[JavaScript] First-Class Citizen
First-Class Citizen (1급 시민)
정의
First-Class Citizen (First-class object)이란, 보통 다른 객체들에게 적용이 가능한 연산을 모두 지원하는 객체를 말한다. 보통 매개변수로 전달되고, 함수에서 반환되며 변수에 할당되는 작업들이 포함된다고 할 수 있다. 즉, 프로그래밍 언어에서 Type을 전달, 반환, 할당할 수 있는 경우 해당 Type을 1급 시민으로 간주한다고 할 수 있다.
JavaScript에서는 함수를 반환값으로 사용할 수 있고, 함수를 파라미터로 전달하여 인자로 사용할 수도 있기 때문에 JavaScript에서의 함수는 1급 시민이라고 할 수 있다.
조건
- 변수나 데이터 구조 안에 담을 수 있다.
- 파라미터로 전달할 수 있다.
- 반환 값으로 사용될 수 있다.
- 할당에 사용된 이름과 관계없이 고유하게 구별할 수 있다.
- 동적으로 프로퍼티를 할당할 수 있다.
예제
// 숫자, 문자열 등과 같이 변수에 담을 수 있는 자료형은 1급 시민이다.
let num = 1
let str = "Nine"
// 조건문은 변수의 값이 될 수 없으므로, 1급 시민이 아니다. (2급 시민이다.)
// let val = if(some Bool) {
// doSomething;
// }
// 함수는 JavaScript에서 변수에 할당될 수 있으므로, 1급 시민이다.
const val2 = function(num) {
return num*2
}
// JavaScript에서 함수는 1급 시민이므로, 반환값으로 사용할 수 있다.
function fn(num) {
let val = function(num) {
return num * num
}
return val;
}
// 함수의 인자 값으로 함수를 받을 수 있다.
function fn2(func, num) {
return func(num)
}
fn2(fn, num)
Author And Source
이 문제에 관하여([JavaScript] First-Class Citizen), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@_nine/JavaScript-First-Class-Citizen저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)