-
2-3 일급 객체로서의 함수 1JavaScript 문법 종합반 2023. 4. 8. 15:22
*객체 = 변수, 자료 구조, 함수 또는 메소드
(자바스크립트에서의) 함수 = 일급 객체(Firt-Class Object)
일급 객체란?
다른 객체들에 일반적으로 적용가능한 연산을 모두 지원하는 객체
즉, 함수 => 객체처럼 매우 유연하게, 여러가지 방식으로 다룰 수 있음
함수가 객체처럼 다뤄지는 방식 다섯 가지
1. 변수에 함수를 할당할 수 있다. 변수 안에 함수를 포함시킬 수 있다.
const sayHello = function () {
console.log('Hello!')
}
즉 sayHello라는 변수 = 함수 () {} 시켜서 sayHello를 호출해서 함수를 실행시킬 수 있다.
2. 함수를 인자로 다른 함수에 전달할 수 있다. (매개변수로받은 func도 함수가 될 수 있다.)
2-1. 콜백함수: 매개변수로써 쓰이는 함수. 고차함수의 한 종류. 4주차때 또 설명(내용이 길다고한다.)
2-2. 고차함수: 함수를 인자로 받거나 return하는 함수고차함수 중 함수를 인자로 받는 콜백함수
(함수 안의 함수)
function callFunction (func) {
func();
}
const sayHello = fuction () {
console.log("Hello!");
};
callFunction(sayHello);
터미널 결과: Hello!
고차함수 중 함수를 return하는 함수(함수 아래 return안에 함수)
return안에 함수형식을 넣을 수 있다. 함수를 return한다.
function createAdder(num) {
return function (x) {
return x + num;
);
}
const addFive = createAdder(5);
함수createAdder의 매개변수는 num으로 하고 그 아래 함수를 실행하는데, 아래 함수는 x를 매개변수로 하며 x + num을 실행하기로 한다.
여기서 5를 num에 지정하고, 그것을 addFive라고 하자.
그럼
const addFive = function createAdder(5) {
return function (x) {
return x + 5;
);
}
가 된다.
그리고 그 addFive에 (addFive(10))을 하면 x에 10을 넣기로 한다.
const addFive = function createAdder(5) {
return function (10) {
return 10 + 5;
);
}
터미널 결과: 10
배운점
1. 콜백함수
매개변수로 받은 func를 함수화 한 후, 함수안에 (함수기능을 가진)변수를 넣음으로써(콜백함수) 연결시킨다.
callFunction(sayHello);는
callFunction(fuction () {
console.log("Hello!");
};)
즉 func라는 매개변수로 형태를 만들어 놓은 후 그안에 함수기능을 가진 변수를 넣었더니 기능을 실행했다.
2.고차함수
처음 addFive 변수를 선언하고 5를 매개변수값에 넣어 createAdder 안에 5를 넣는것 까지는 이해가 되었는데,
그 addFive에 또 10을 대입해서 x자리에 10을 넣는것을 이해하는데까지 시간이 좀 걸렸다.
이는 구조&기능에 익숙하지 않았던 이유로 생긴 어려움이었다.
나아가 함수의 사용방식이 앞서 배운것처럼 많이 쓰이고 중요하다는것을 반증한다.'JavaScript 문법 종합반' 카테고리의 다른 글
2-6 Set 소개 및 예시코드 연습 (0) 2023.04.08 2-5 Map 소개 및 예시코드 연습 (0) 2023.04.08 2-2 ES6 문법 소개 및 실습 2 (0) 2023.04.08 2-1 ES6 문법 소개 및 실습 1 (0) 2023.04.08 1주차 숙제 02 - 반복문, 조건문 연습하기 (0) 2023.04.07