1. 재귀 함수, 프로퍼티 연동 방지, 재귀 함수 형태


프로퍼티 연동 방지

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>

사용 사례

재귀 함수 형태

  1. show(book);

  2. for( var type in param){...}

  3. typeof param[type] === "object" ? show(param[type]) : console.log(type + ":", param[type]);

  4. 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


2. 즉시 실행 함수, 함수 즉시 실행 과정


즉시 실행 함수