일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- version specifications
- Runtime Execution
- 오버로딩과 오버라이딩
- 브라우저 렌더링
- Paste Into File
- 날개셋 한글 입력기
- 콜맥
- State Control
- 이벤트 위임
- 자소 단위 삭제 해제
- static 키워드
- 복사한것을파일로
- 프리오닉
- 쿼티
- 구현 패턴
- ortholinear
- details marker 제거
- 개발자 도구 활용
- super 메소드
- 절차 지향과 객체 지향
- 글자 단위 삭제
- Sync & Async
- colemak
- 창 그룹화
- olkb
- 탭 관리 프로그램
- 영수증 가계부
- 프론트엔드 개발환경
- 글자 지우기
- JavaScript
Archives
- Today
- Total
What got you here won't get you there
First-class Function - 일급 함수 본문
프로그래밍 언어가 함수를 다른 변수들처럼 취급할 수 있을 때, 이 언어를 일급 함수를 가진 언어라고 할 수 있다.
즉, 함수가 다른 변수처럼 사용될 때의 함수를 일급 함수라고 부른다.
변수에 함수 할당
const foo = () => { console.log("foobar"); }
// 변수를 통해 호출
foo();
익명 함수를 변수에 할당할 수 있고, 변수를 이용해 함수를 호출할 수 있다.
익명 함수가 아니어도 할당과 호출이 가능하다. 함수에 이름을 주는 것은 디버딩에 도움이 되지만 함수 호출에 영향을 주지는 않는다.
함수를 인자로 전달
function sayHello() {
return "Hello, ";
}
function greeting(helloMessage, name) {
console.log(helloMessage() + name);
}
// `sayHello` 함수를 `gretting` 함수의 인자로 전달
gretting(sayHello, "JavaScript!");
sayHello 함수를 greeting 함수의 인자로 전달한다. 이는 함수를 값으로 취급함을 의미한다.
다른 함수한테 인자로 전달한 함수를 콜백 함수(Callback Function)라고 부른다.
함수를 반환
function sayHello() {
return function() {
console.log("Hello!");
}
}
함수는 다른 함수를 반환할 수 있다. - 함수를 값으로 취급하기 때문이다.
함수를 반환하는 함수를 고차 함수(Higher-Order Function)라고 부른다.
sayHello 함수를 호출하면 익명 함수를 반환한다. 이 함수를 사용할 두 가지 선택지가 있다.
1 - 변수에 할당하여 사용
function sayHello() {
return function() {
console.log("Hello!");
}
}
const myFunc = sayHello();
myFunc();
2 - 두 번의 함수 호출 사용
function sayHello() {
return function() {
console.log("Hello!");
}
}
sayHello()();
'Web App' 카테고리의 다른 글
웹 기초 (0) | 2021.09.07 |
---|---|
성능 최적화 (0) | 2021.09.06 |
[JS] Object property order (0) | 2021.07.13 |
Non-blocking JavaScript - 1 (0) | 2021.06.17 |
JavaScript - 1 (Version Specifications) (0) | 2021.06.17 |
Comments