
함수가 자기 자신을 호출하는 것을 말한다.
const neo = { name: "Neo" };
const evan = { name: "Evan", parent: neo };
const lewis = { name: "Lewis", parent: evan };
const amy = { name: "Amy", parent: lewis };
const getRootUser = (user) => {
if (user.parent) {
return getRootUser(user.parent); // 재귀 호출
}
return user;
};
console.log(getRootUser(lewis));
class User {
constructor(name, parent) {
this.name = name;
this.parent = parent;
}
static getRootUser(user) {
if (user.parent) {
return User.getRootUser(user.parent);
}
return user;
}
}
const neo = new User("Neo");
const evan = new User("Evan", neo);
const lewis = new User("lewis", evan);
const amy = new User("Amy", lewis);
console.log(User.getRootUser(amy));