[JavaScript] 자바스크립트에서 함수는 일급 객체(first-class-object)이다.
글 작성자: 망고좋아
반응형
🎯 함수는 일급 객체(first-class-object)이다.
- 일급 객체란, 다른 변수처럼 대상을 다룰 수 있는 것을 말한다.
- 자바스크립트에서 함수는 일급 객체이다.
- 즉, 자바스크립트에서 함수는 변수처럼 다룰 수 있다.
function add(a, b) {
return a + b;
}
// 함수를 다른 함수의 인자로 넘긴다.
[1, 2, 3].reduce(add, 0);
(() => {
console.log('익명 함수를 생성한다.');
})();
function outer(a) {
function inner(b) {
return a + b;
} // 중첩 함수를 생성한다.
return inner(10)
}
const Persom = (name) => {
// 함수를 변수로 생성한다.
const printName = () => console.log(name);
return { printName }
} // 함수를 리턴하면 closure를 생성한다.
const person = Person('Daniel');
person.printName();
function printName(name) {
console.log('name : ', name);
}
// 함수끼리 비교한다.
// ===의 경우, 변수가 같은 객체(함수)를 가리키는지 체크한다.
console.log(printName === person.printName);
🏷 요약
- 함수를 다른 함수의 인자로 넘기면, 다른 함수 내부에서 그 함수를 호출할 수 있다.
- 함수를 인자로 받아 자유롭게 활용할 수 있습니다. 인자로 받은 함수는 또한 다른 함수를 인자로 받을 수 있다.
- 함수 안에 함수를 만들면, 그 함수는 외부에서 사용될 수 없다.
- 함수 안에 함수를 선언했을 때 그 함수를 외부에서 쓰고 싶다면, 그 함수를 리턴하여 사용할 수 있다.
- 함수의 실행이 끝나도 내부 변수를 유지할 수 있다.
- 함수 안에서 closure가 만들어지면, 내부 변수가 메모리에 남아 closure에 활용된다.
반응형
'프로그래밍 > JavaScript' 카테고리의 다른 글
[JavaScript] 자바스크립트 나머지 매개변수란? (0) | 2021.11.13 |
---|---|
[JavaScript] 자바스크립트 클로저란? (0) | 2021.11.13 |
[JavaScript] 자바스크립트 화살표 함수와 일반 함수의 this (0) | 2021.11.13 |
[JavaScript] 자바스크립트 실행 컨텍스트 (0) | 2021.11.13 |
[JavaScript] 자바스크립트 함수가 실행되는 과정 (0) | 2021.11.13 |
댓글
이 글 공유하기
다른 글
-
[JavaScript] 자바스크립트 나머지 매개변수란?
[JavaScript] 자바스크립트 나머지 매개변수란?
2021.11.13 -
[JavaScript] 자바스크립트 클로저란?
[JavaScript] 자바스크립트 클로저란?
2021.11.13 -
[JavaScript] 자바스크립트 화살표 함수와 일반 함수의 this
[JavaScript] 자바스크립트 화살표 함수와 일반 함수의 this
2021.11.13 -
[JavaScript] 자바스크립트 실행 컨텍스트
[JavaScript] 자바스크립트 실행 컨텍스트
2021.11.13