개발자 박가나
[JavaScript] 일급 객체로서의 함수 본문
📌 이번 포스팅에서 배울 내용 ▶ 일급 객체로서의 함수 ▷ 변수에 할당 ▷ 다른 함수에 인자로 전달 ▷ 함수를 반환 ▷ 객체의 프로퍼티로 할당 ▷ 배열의 요소로 할당 |
일급 객체 (First-class Object)
다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 의미한다.
JavaScript의 함수는 값으로 취급되고 일급 객체로서의 성격을 띄기 때문에 매우 유연하게 사용할 수 있다.
변수에 할당
함수는 다른 변수와 마찬가지로 변수에 할당할 수 있고, 변수에 할당된 함수는 나중에 사용 가능하다.
const sayHello = function() {
console.log('Hello!')
}
sayHello() // Hello!
다른 함수에 인자로 전달
함수는 다른 함수의 인자로 전달될 수 있고, 이는 콜백함수(Callback Function) 또는 고차함수(Higher-order Function)를 작성하는데 사용된다.
- 콜백함수 : 어떠한 함수의 매개변수로 쓰이는 함수
- 고차함수 : 함수를 인자로 받거나 함수를 반환하는 함수
function callFunction(func) {
func()
}
const sayHello = function() {
console.log('Hello!')
}
callFunction(sayHello) // Hello!
함수를 반환
함수는 다른 함수에서 반환할 수 있고, 이는 함수 팩토리(Factory)나 클로저(Closure)를 작성하는데 사용된다.
function createAdder(num) {
return function(x) {
return x + num
}
}
const addFive = createAdder(5)
console.log(addFive(10)) // 15
객체의 프로퍼티로 할당
함수는 객체의 프로퍼티로 할당될 수 있고, 객체의 메소드로 함수를 호출할 수 있다.
const person = {
name: 'John',
sayHello: function() {
console.log(`Hello! My name is ${this.name}.`)
}
}
person.sayHello() // Hello! My name is John.
배열의 요소로 할당
함수는 배열의 요소로 할당될 수 있다.
const arr = [
function(a, b) {
return a + b
},
function(a, b) {
return a - b
}
]
console.log(arr[0](5, 10)) // 15
console.log(arr[1](10, 5)) // 5
'개념 > JavaScript' 카테고리의 다른 글
[JavaScript] Map & Set (1) | 2024.10.17 |
---|---|
[JavaScript] 콜백 함수 & 비동기 제어 (0) | 2024.10.14 |
[JavaScript] 조건문 & 반복문 (0) | 2024.10.13 |
[JavaScript] ES6 문법 (0) | 2024.10.13 |
[JavaScript] 호이스팅 (0) | 2024.10.13 |