함수와 일급 객체

2022. 5. 14. 12:58·JavaScript
728x90
반응형

일급객체

 

무명의 리터럴로 생성할 수 있다. 즉 , 런타임에 생성이 가능하다.

변수나 자료구조에 저장할 수 있다.

함수의 매개변수에 전달할 수 있다.

함수의 반환값으로 사용할 수 있다. (함수형 프로그래밍 = 함수의 매개변수에 전달, 반환값 사용)

const increase=function (num){
  return ++num;
}
const decrease=function (num){
  return --num;
}

const auxs={increase,decrease}

console.log(auxs);

함수가 일급 객체 -> 함수를 객체와 동일하게 사용가능

 

함수 객체의 프로퍼티

arguments,caller,length,name,prototype 프로퍼티는 모두 일반 객체에는 없는 함수 객체 고유의 데이터 프로퍼티다.

 

arguments 프로퍼티

함수 호출 시 전달된 인수들의 정보를 담고 있는 순회 가능한 "유사 배열 객체"이며, 함수 내부에서 지역 변수처럼 사용

-> 외부에서 참조불가

매개변수 개수를 확정할 수 없는 "가변 인자 함수 구현"에 유용함

function plus(a,b){
  console.log(arguments)
  return a+b
}


console.log(plus()) NaN으로 출력 (에러 발생안함)


function sum(){
  let result=0;

for (let i = 0; i < arguments.length; i++) {
  result+=arguments[i]
}
  return result
}

console.log(sum()); 0
console.log(sum(1,2)); 3

ES6 Rest 파라미터

위에 arguments 대신 너무 좋은게 만들어졌다.

규칙

나머지 매개변수는 하나만 존재가능

나머지 매개변수는 다른 매개변수가 있을시 마지막 매개변수여야함

function sum(...theRes){}
function sum(one,two,...theRes){}

function sum(...one,...two){} XXXXXX 불가능

function sum(...theRes,one,two){} XXXXX 불가능

length 프로퍼티 - 매개변수의 개수를 나타내는것.

name 프로퍼티- 함수 이름을 나타냄

__proto__ 프로퍼티는 프로토타입때 자세하게 다룬다..

728x90
반응형
저작자표시 (새창열림)

'JavaScript' 카테고리의 다른 글

this / 실행 컨텍스트  (0) 2022.06.09
strict mode / 빌트인 객체  (0) 2022.05.24
생성자 함수  (0) 2022.05.14
스코프 / 프로퍼티 어트리뷰트  (1) 2022.05.14
함수  (2) 2022.05.09
'JavaScript' 카테고리의 다른 글
  • this / 실행 컨텍스트
  • strict mode / 빌트인 객체
  • 생성자 함수
  • 스코프 / 프로퍼티 어트리뷰트
Hun-bot
Hun-bot
IT를 중심으로 다양한 것
  • Hun-bot
    로봇이 만드는 눈사람
    Hun-bot
  • 전체
    오늘
    어제
    • All Article (128)
      • Programmers (6)
        • TIP (1)
        • SQL (2)
        • LV1 (1)
        • LV2 (2)
        • LV3 (0)
      • Baekjoon (31)
        • Bronze (10)
        • Silver (19)
        • Gold (2)
        • Platinum (0)
        • Diamond (0)
      • Leetcode (0)
        • Easy (0)
        • Medium (0)
        • Hard (0)
        • SQL (0)
      • 알고리즘(Algorithm) (42)
      • JavaScript (40)
      • Linux (7)
      • JSP (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      Vue #Vue.js #정리
      LeetCode #JS #Javascript #Algorithm
      JavaScript #Set #Collection
      프로그래머스
      알고리즘 #Algorithm
      프로그래머스 #자바스크립트 #JS
      리눅스
      고득점 Kit
      Python #알고리즘
      SQL
      c++
      Programmers
      티스토리챌린지
      Algorithm
      JS #javascript #객체 #Object
      JSP #Vscode #톰켓 #Tomcat #Java #Web #jdk
      Javascript
      알고리즘
      JS #클래스
      JS #JavaScript #프로그래머스 #알고리즘
      JS #정규표현식
      JS #프로그래머스 #숫자의표현 #알고리즘
      BaekJoon
      자바스크립트
      JS #JavaScript #프로그래머스 #카카오
      리눅스 #입문
      백준
      오블완
      자바스크립트 #연습문제
      async await #js #문법 #자바스크립트 #비동기
    • 최근 댓글

    • hELLO· Designed By정상우.v4.10.3
    Hun-bot
    함수와 일급 객체
    상단으로

    티스토리툴바

    티스토리툴바