일급객체(First-class Object)란 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킨다
무명의 리터럴로 생성할 수 있다. 즉 런타임에 생성이 가능하다.
변수에 할당가능
let func = function hello(){
return "hello";
}
// 변수 func에, hello를 반환하는 hello함수를 만들어 할당할 수 있다.
let func2 = function(){
return "hello";
}
// 함수를 선언할 때 익명함수로 선언할 수도 있다.
var test = function(func) {
func(); // 파라미터로 받은 함수 호출
}
// test() 함수에 다른 함수를 파라미터로 넣어 호출
test(function() {
console.log('javascript');
});
function add(num1) {
return function (num2) {
return num1 + num2;
}
}
add(3)(4); // 7
콜백함수를 사용할 수 있다.
고차함수(High-order function) 를 만들 수 있다.