개발자 박가나

[JavaScript] 일급 객체로서의 함수 본문

개념/JavaScript

[JavaScript] 일급 객체로서의 함수

gnchoco97 2024. 10. 13. 15:00
📌 이번 포스팅에서 배울 내용

     ▶ 일급 객체로서의 함수

          ▷ 변수에 할당

          ▷ 다른 함수에 인자로 전달

          ▷ 함수를 반환

          ▷ 객체의 프로퍼티로 할당

          ▷ 배열의 요소로 할당

 


 

일급 객체 (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