728x90
300x250
프로그래밍 언어는 다른 변수로 취급될 때 First-class Function을 가진다.
예를 들어, 함수를 다른 함수에 인수로 전달할 수 있고, 다른 함수로 리턴할 수 있으며 함수를 변수의 값으로 할당할 수도 있다.
변수에 함수 할당
const foo = function() {
console.log("foobar");
}
foo(); // 변수를 사용해서 호출
//foobar
foo라는 변수에 익명함수를 할당 그리고 그 변수를 사용해서 호출
함수를 인자로 전달
function sayHello() {
return "Hello, ";
}
function greeting(helloMessage, name) {
console.log(helloMessage() + name);
}
// `sayHello`를 `greeting` 함수에 인자로 전달
greeting(sayHello, "JavaScript!");
sayHello 함수를 greeting 함수의 인자로 전달 가능하다.
함수리턴
function sayHello() {
return function() {
console.log("Hello!");
}
}
자바스크립트에서 함수는 값으로 취급되기 때문에 또 다른 함수의 리턴 값으로도 사용 가능하다.
1- 변수 사용하기
const sayHello = function() {
return function() {
console.log("Hello!");
}
}
const myFunc = sayHello();
myFunc();
// Hello!
만약 sayHello 함수를 직접적으로 호출하면 리턴 함수를 호출하는 게 아니라 함수 자기 자신을 호출한다.
그렇기 때문에 리턴 값을 호출하려면 또 다른 변수를 이용해서 호출해야 한다.
2- ()() 이중 중괄호 사용하기
function sayHello() {
return function() {
console.log("Hello!");
}
}
sayHello()();
참고 https://developer.mozilla.org/ko/docs/Glossary/First-class_Function
728x90
반응형
'javaScript > J Query & 스크립트' 카테고리의 다른 글
function(e) 의미 (0) | 2022.05.10 |
---|---|
인자(parameter) 인수(argument) 차이 + 매개변수 (0) | 2022.05.08 |
class 추가, 삭제, 토글 javaScript (0) | 2022.05.06 |
HTML DOM 컨트롤 vanilla 자바스크립트 코드 모음 (0) | 2022.05.02 |
JavaScript 아이디(id), 태그(tag), 클래스(class) 찾기 (0) | 2022.04.29 |
댓글