ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2-3 일급 객체로서의 함수 1
    JavaScript 문법 종합반 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을 넣는것을 이해하는데까지 시간이 좀 걸렸다.
    이는 구조&기능에 익숙하지 않았던 이유로 생긴 어려움이었다.
    나아가 함수의 사용방식이 앞서 배운것처럼 많이 쓰이고 중요하다는것을 반증한다.

Designed by Tistory.