Object에 Object를 할당하면 프로퍼티 값이 연동됩니다.
⇒ origin 오브젝트를 dup변수에 할당 후 dup.member에 200을 할당하면 origin.member의 값이 연동되어 바뀌는데 오브젝트를 할당하며 값을 공유하기 때문입니다.
var origin = {member: 100};
var dup = origin;
dup.member = 200;
console.log(origin.member);//200
var origin = [1, 2, 3];
var dup = origin;
dup[1] = 200;
console.log(origin);//[1, 200, 3]
var origin = {member: 100};
var dup = {};
for (var name in origin){
dup[name] = origini[name];
};
dup.member = 200;
console.log(origin.member);//100
console.log(dup.member);//200
<aside> 💡 Recursive Function: 함수 안에서 자신 함수를 호출하는 형태
</aside>
사용 사례
show(book);
for( var type in param){...}
typeof param[type] === "object" ? show(param[type]) : console.log(type + ":", param[type]);
param[type]타입이 "object"가 아니면 member: {name: 100}에서 {name: 100}을 읽은 것이기에 값을 출력합니다.
var book = {
member: {name: 100},
point: {value: 200}
};
function show(param){
for(var type in param){
typeof param[type] === "object"
? show(param[type])
: console.log(type + ":", param[type]);
}
};
show(book);
[실행 결과]
name: 100
value: 200
함수 즉시 실행이란?
(function(){
console.log("JS북");
}());