자바스크립트 arguments를 사용한 가변 인자 함수 활용

2020. 11. 14. 23:49·개발/JavaScript

자바스크립트의 aruments는 유사 배열 객체를 생성하는 내부 함수입니다. 이는 함수 호출 시, 함수에 선언된 매개 변수보다 더 많은 인자를 전달하는 경우 등에 활용할 수 있습니다.

유사 배열(Array-like)이란 arguments가 길이 속성과 프로퍼티를 갖고 있지만, 배열에서 사용할 수 있는 내장 메소드인 forEach(), map() 등을 사용할 수 없는 객체를 의미합니다.

먼저, arguments의 작동 방식을 이해해 보도록하겠습니다. 아래의 경우처럼, 각 함수에 할당한 인자가 arugments에 유사 배열 형태로 할당됩니다.

function func1(a, b, c) {
    console.log(arguments[0]); // 1
    console.log(arguments[1]); // 2
    console.log(arguments[2]); // 3
}

func1(1, 2, 3);

이를 활용해 전달하는 인자를 모두 더하는 함수를 만들어보도록 하겠습니다.

function add() {
  let result = 0;
    for (let i in arguments) {
        result += arguments[i]
    }    return result
}

add(1, 2, 3) // 6
add(1, 2, 3, 4, 5) // 15

arguments를 활용하여 다음과 같이 두 객체를 비교하고, 특정 객체에 존재하지 않는 키와 값을 다른 객체에 추가하는 함수를 만들어 볼 수도 있습니다.

function extend (obj) {
  for (let i in arguments) {
    for (let j in arguments[i]) {
      obj[j] = arguments[i][j];
    }
  } return obj;
}

const obj1 = {
  a: 1,
  b: 2,
}

const obj2 = {
  c: 3,
  d: 4,
}

console.log(extend(obj1, obj2)); // { a: 1, b: 2, c: 3, d: 4 }

참고: The arguments object

'개발 > JavaScript' 카테고리의 다른 글

자바스크립트 메모이제이션 설명  (0) 2020.11.17
자바스크립트 클로저 설명, 예시, 활용  (0) 2020.11.08
자바스크립트 엄격 모드 "use strict" 차이점 설명  (0) 2020.11.07
'개발/JavaScript' 카테고리의 다른 글
  • 자바스크립트 문자열로 함수를 실행하는 방법
  • 자바스크립트 메모이제이션 설명
  • 자바스크립트 클로저 설명, 예시, 활용
  • 자바스크립트 엄격 모드 "use strict" 차이점 설명
휘Hwi
휘Hwi
여행, 사진, 개발, 책 이야기를 기록하는 여행자 휘의 블로그 𓂍
  • 휘Hwi
    휘: 끝나지 않은 이야기
    휘Hwi
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 기록
        • 일상 에세이
        • 인사이트
        • 투자와 재테크
        • 코인 이야기
        • 아카이빙
        • 집무실 레터
        • 사랑에 대하여
        • 번역 이야기(完)
        • 프리랜서 일지(完)
      • 여행
        • 🌎 세계 여행기 S1 (完)
        • 🌊 삼삼한 여행기 (完)
        • 🚶 온더로드
        • 🇯🇵 일본
        • 🏝️ 발리
        • 🇻🇳 베트남
        • 🇱🇰 스리랑카
        • 🇮🇳 인도
        • 🇹🇭 태국
        • 🇸🇬 싱가포르
        • 🇦🇺 호주
        • 🇭🇰 홍콩
        • 🇰🇷 한국
        • 🍚 여행자의 한 끼
        • ℹ️ 여행 정보
      • 사진
        • 사진가
        • 사진 이론과 생각
        • 사진 관련 정보
      • 영상
        • 파이널컷 모션 공부
        • 고프로 GoPro
        • 영상 관련 정보
      • 책
        • 책 읽고 쓰기
      • 개발 N
        • 티스토리
        • Internet
        • HTML
        • CSS
        • JavaScript
        • Typescript
        • React
        • Node.js
        • Express
        • NestJS
        • Python
        • Django
        • MySQL
        • MongoDB
        • AWS
        • Deployment
        • Terminal
        • Git N
        • Glossaries
        • Articles
        • Projects
        • TIL;
      • 미분류
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
휘Hwi
자바스크립트 arguments를 사용한 가변 인자 함수 활용
상단으로

티스토리툴바