오늘 뭐했냐/개발에 대한 주저리

일급 객체 객체로서의 함수 (1)

스스로에게 2023. 5. 24. 19:43

일급객체(First-class Object)란 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킨다. [위키백과]

 

// 1. 변수에 함수를 할당할 수 있다.
// 함수가 마치 값으로 취급된다.
// 함수가 나중에 사용될 수 있도록 조치가 되었다.
const sayHello = function () {
    console.log (`Hello!`);
};

// 2. 함수를 인자로 다른 함수에 전달할 수가 있다.
// 2-1. 콜백함수 : 매개변수로써 쓰이는 함수
// 2-2. 고차함수 : 함수를 인자로 받거나 return하는 함수
// 고차함수의 한 종류로 콜백함수가 있다.

const callFunction = function (func){
    // 매개변수로 받은 변수가 함수이다.
    func();
};

callFunction(sayHello); // callFunction의 매개변수로 sayHello이 전달되었다

// 3. 함수를 반환할 수 있다. 
function createAdder(num) {
    return function (x) {
        return x + num
    }; 
}

const addFive = createAdder(5); 
// addFive = function (x) {
//     return x + 5
// }; 

console.log(createAdder(5)); //[Function (anonymous)]
// 익명 함수를 반환하고 종료 되었다

console.log(addFive(10)); // 15

강의하시면서 함수가 매개변수로도 들어갈 수 있고 리턴값으로도 쓸 수 있고 재밌다고 하시는데 재밌지 않습니다 ... 머리 아파요

'오늘 뭐했냐 > 개발에 대한 주저리' 카테고리의 다른 글

Map  (1) 2023.05.24
일급 객체로서의 함수 (2)  (0) 2023.05.24
es6(2)  (0) 2023.05.24
es6(1) - 구조분해할당(destructuring)  (0) 2023.05.24
for문  (0) 2023.05.23