FrontEngineer JungBam

매개변수(parameter)와 인수(argument), 그리고 arguments 본문

자바스크립트 개념

매개변수(parameter)와 인수(argument), 그리고 arguments

정밤톨 2023. 2. 22. 12:45

매개변수란 함수가 호출될 때 인수로 전달된 값을 함수 내부에서 사용할 수 있도록 해주는 값을 이야기 한다. 

인수와 매개변수를 간단하게 짚고 넘어가자.
const add = (a, b) => a+b
add(1,2)
라고 했을 때 파라미터는 a와 b를 이야기하는 것이고 인수란 1과 2를 이야기 하는 것이다.

그렇다면 arguments란 무엇일까?

function으로 불려지게 된다면 들어오는 인수들이 arguments라는 객체에 들어오게 되고 function 내부에서 이 arguments 객체를 통해서 들어온 값에 접근할 수 있다.

예전에 화살표 함수를 공부하면서 arguments가 없다라는 것이 기억난다.

화살표 함수는 fucntion으로 만들어진 친구들과 달리 익명함수이고, this가 바인딩되어 있지 않아 스코프 체인을 통해 가까운 상위 스코프에서 this를 찾아옵니다. 그래서 bind() 메소드도 사용할 수 없다.

일반함수는 자신을 불러온 객체를 this로 바인딩 하기 때문에 메소드로 사용되었을 때에는 . 앞에 있는 객체를 참조하고 함수로 호출되었을 때에는 window 객체를 참조하는 각각 다른 방식으로 바인딩 되지만 화살표 함수는 실행되는 기준으로 상위 스코프에 있는 this 객체를 가져온다.

const a = {
  name : '객체',
  arrow : function(){
      const any = ()=>console.log(this)
      any()
   }
}
a.arrow() // {name:'객체', arrow:f}

const a = {
  name : '객체',
  arrow : function() {
      function any() {
           console.log(this)
      }
      any()
   }
}
a.arrow() // window 객체

 

반응형

'자바스크립트 개념' 카테고리의 다른 글

max-age와 expires  (0) 2023.03.01
this 바인딩의 경우의 수  (0) 2023.02.24
호이스팅과 TDZ  (0) 2023.02.22
RESTFUL한 API란 어떤 것인가?  (0) 2023.02.21
브라우저 렌더링 과정  (1) 2023.02.20
Comments