함수와 일급 객체

Seongkyun Yu·2020년 12월 7일
0

TIL - Javascript

목록 보기
13/28

기존 블로그에 작성한 내용을 velog로 이전한 글입니다


1. 일급 객체


일급 객체의 조건은 다음과 같다.
  • 무명의 리터럴로 생성할 수 있다.(런타임에 생성 가능)
  • 변수나 자료 구조(객체, 배열 등)에 저장할 수 있다.
  • 함수의 매개 변수에게 전달할 수 있다.
  • 함수의 결과값으로 반환할 수 있다.


2. 함수 객체의 프로퍼티

  • arguments 프로퍼티
    함수 호출시 전달된 인수들의 정보를 담고 있는 순회 가능한 유사배열 객체.
    함수 몸체 내부에서 변수와 동일하게 취급 됨.
    변수 개수를 지정하지 않고 쓰는 법은 다음과 같다.

    function sum(...args) {
      return args.reduce((pre, cur) => pre + cur, 0);
    }
  • length 프로퍼티
    argument.length : 인자의 개수
    함수.length : 매개변수의 개수

  • name 프로퍼티
    기명 함수 표현식 : 함수이름
    익명 함수 표현식 :

    • ES5 -> 빈문자열

    • ES6 -> 함수 식별자

      // 기명 함수 표현식
      var namedFunc = function foo() {};
      console.log(namedFunc.name); // foo
      
      // 익명 함수 표현식
      var anonymousFunc = function () {};
      // ES5: name 프로퍼티는 빈 문자열을 값으로 갖는다.
      // ES6: name 프로퍼티는 함수 객체를 가리키는 변수 이름을 값으로 갖는다.
      console.log(anonymousFunc.name); // anonymousFunc
      
      // 함수 선언문(Function declaration)
      function bar() {}
      console.log(bar.name); // bar
  • __proto__ 접근자 프로퍼티

    [[Prototype]] 내부 슬롯에 접근하기 위한 접근자 프로퍼티.

  • prototype 프로퍼티

    함수 객체만이 소유하는 프로퍼티.

참고자료: poiemaweb.com

profile
FrontEnd Developer

0개의 댓글