해결된 질문
작성
·
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]에는 객체가 들어있습니다
궁금증이 해소가 잘 안된다면 다시 질문해주셔도 좋습니다 :)