-
글쓴이글
-
2022년 5월 21일 19:58 #34583
조성익참가자var 이름1 = { name : '김' };
function 변경(obj){
obj = { name : 'park' };
}변경(이름1);
을 할 경우 obj는 새로운 화살표를 얻고 var obj = { name : 'park' } 로 새로운 오브젝트가 할당된다고 배웠습니다
그러면 변경(이름1); 부분에 이름1이 아닌 아무것도 아닌 변경(아무거나);를 하게 되면
var 아무거나 = { name : 'park' } 이 되는게 아닌건지요..
아무거나를 출력해도 Uncaught ReferenceError: 아무거나 is not defined 에러가 떠서
위에 var 아무거나 를 변수 선언 해도 undefined가 나옵니다
왜 이런건지 알려주시면 감사드리겠습니다!
2022년 5월 21일 23:25 #34591
codingapple키 마스터변경(아무거나)
이건 '아무거나' 라는 변수를 함수에 파라미터로 넣으라는 뜻입니다
아무거나라는 변수가 위에 있어야합니다
2022년 5월 22일 13:10 #34614
조성익참가자var 이름1 = { name : '김' };
var 아무거나function 변경(obj){
obj = { name : 'park' };
}변경(아무거나);
console.log(이름1)
console.log(아무거나)콘솔창 결과
이름1 -> {name: '김'}
아무거나 -> undefined
이렇게 출력됩니다 ㅠㅠ
'아무거나' 가 function 변경(obj){
obj = { name : 'park' };
} 에서 obj, 즉 파라미터 부분에 들어가게 되면function 변경(아무거나){
var 아무거나 = { name : 'park' };
}가 되는 걸로 이해했는데 막상 실행하니 그렇지 않아 의문이 듭니다 ㅠㅠ
혹시나 싶어
변경("아무거나")를 해봐도 {name:'park'}이 아닌 undefined가 나옵니다..
2022년 5월 22일 13:20 #34615
조성익참가자제 추측이지만 혹시 var 변수가 function 범위라서
function 안에서만 var 아무거나 = {name: 'park'}이 할당되고 function 밖에서는 사라지는건가요??
var 이름1 = { name : '김' };
function 변경(obj){
obj = { name : 'park' };
console.log(obj)
}변경(이름1)
변경("아무거나");
console.log(이름1)이렇게 해보니
콘솔창에
변경(이름1) -> {name:'park'}
변경("아무거나") -> {name:'park'}
console.log(이름1) -> {name:'김'}으로 나오긴 하네요...
사라진다기 보단 function 안에서만 할당되고 밖에 나오면 적용이 안되는게 맞는지 궁금합니다!
2022년 5월 22일 16:35 #34626
codingapple키 마스터var 아무거나
function 변경(obj){
obj = { name : 'park' };
}변경(아무거나);
이러면 함수안에서는
var obj = 아무거나;
obj = { name : 'park' };
이게 차례로 실행됩니다 아무거나라는 변수에는 아무것도 집어넣은게 없군요
2022년 5월 22일 18:25 #34636
조성익참가자감사합니다
파라미터 obj에 아무거나를 넣는다고 해도
아무거나 = {name:"park"}이 되는게 아니라
파라미터명인 obj이라는 변수에 {name:"park"}이 되는거군요..
이런 방식으로 object가 만들어지고 복사 될거라 예상했는데
다음 강의들을 보고 나니 의미 없는 질문이였던걸 깨달았습니다 ㅎㅎㅎ...혹시 궁금증으로 추가적인 질문을 드리고 싶은데 obj = {name:"park"}가 될 때
console.log(obj)를 하면 왜 {name:"park"}이 출력이 안될까요..?
2022년 5월 22일 22:58 #34647
codingapple키 마스터var 아무거나
function 변경(obj){
obj = { name : 'park' };
console.log(obj)
}
변경(아무거나);출력은 잘됩니다
-
글쓴이글
- 답변은 로그인 후 가능합니다.