인프런 커뮤니티 질문&답변

김수진님의 프로필 이미지
김수진

작성한 질문수

비전공자를 위한 진짜 입문 올인원 개발 부트캠프

함수 Question

문제2번에서의 인자로 들어간 product 질문입니다.

해결된 질문

작성

·

249

1

만들어진 products배열안의 객체들을 선생님께서 그냥 product라고 지정하신거라고 말씀하셨는데, 여기서부터 궁금한 부분이 있어요.
변수 products안에 담은 객체들을 product라고 따로 지정해주지 않았는데 어떻게 function(product)로 지정되게 되는 건가해서요... 만약에 products라는 변수 외에, 또 배열을 포함한 또 하나의 변수를  추가로 만들게 되면, product가 products변수말고 추가로 만들어진 변수의 객체들을 가리킬수도 있는건가...싶기도 하고 ㅠㅠ (제가 질문을 쓰면서도 무슨말인가 싶기도 하고...방금 뒤의 반복문을 보고 왔는데도 계속 헷갈리네요.)인자라는건 무조건 앞에서 만든 변수의 객체들만 사용하게 되는 일회성인가요?

const getProductSeller = function(product){
  return product.seller;
}

getProductSeller(products[0]);

답변 4

5

그랩님의 프로필 이미지
그랩
지식공유자

에고 ㅠㅠ
하시다가 안되는 부분이 있으면 편하게 질문 남겨주세요!

감사합니다.

2

김수진님의 프로필 이미지
김수진
질문자

몇번 더 보고 댓글로 말씀해주신 부분에 대해서 계속 읽어보니까 이제 이해가 된것같아요! 감사합니다~!

2

김수진님의 프로필 이미지
김수진
질문자

오.. 어떤것인지 알것같기도 하고 아리송송하네요...! 끄응

감사합니다ㅎㅎ

2

그랩님의 프로필 이미지
그랩
지식공유자

안녕하세요 수진님!

함수의 인자는 어떤 객체를 가르키지 않습니다. 인자를 함수 내부에서만 사용할 수 있는 특별한 변수라고 생각하시면 돼요!

function은 기본적으로 템플릿(도장)이라고 생각하시면 됩니다. 즉 자유로운 이름과 인자명을 넣어줄 수 있어요. 그리고 선언된 함수를 실제로 실행할 때 값을 넣어주겠죠? 이때 product로 이름을 지은 매개변수(혹은 인자)에 그 값이 들어가서 로직을 실행할 수 있게  되는 거죠!

헷갈리실까봐 추가로 설명을 드리면 함수의 인자(product)는 자유롭게 설정이 가능합니다. 예를 들면 product1, prod 등등 자유로운이름으로 설정이 가능합니다. 

즉 아래와 같이 사용이 가능하죠.

//여기서 value라는 매개변수를 선언합니다. 함수를 실행한다면 value에는 products[0] 값이 들어가있을 거예요.
const getProductSeller = function(value){  

    return value.seller  

}

getProductSeller(products[0]); //products[0]에는 객체가 들어있습니다

궁금증이 해소가 잘 안된다면 다시 질문해주셔도 좋습니다 :)

김수진님의 프로필 이미지
김수진

작성한 질문수

질문하기