Static
- κ°μ²΄μ κ·μλμ§ μλλ€.
- ν΄λμ€μ μ§μ κ·μλΌμ newλ‘ μΈ νμ μλ€.
class Person {
name;
year;
static groupName = 'μ€';
constructor(name, year) {
this.name = name;
this.year = year;
}
// ν¨μλ κ°λ₯
static returnGroupName() {
return 'μ€';
}
}
const soo = new Person('soo', 1997);
// κ°μ²΄μ κ·μλμ§ μλλ€.
console.log(soo); // Person { name: 'soo', year: 1997 }
// κ·ΈλΌ μ΄λμ κ·μλΌμλ?
// ν΄λμ€ μ체μ κ·μλμ΄μλ€!
console.log(Person.groupName) // μ€
console.log(Person.returnGroupName()) // μ€
Static μ¬μ©ν΄μ Factory Constructor μμ± ν¨ν΄ μ μ©ν΄λ³΄κΈ°
- μΈμ€ν΄μ€λ₯Ό λ°νλ°μ§ μκ³ λ―Έλ¦¬ μ΄λ€ λ°μ΄ν°λ₯Ό μ λ ₯λ°μμ ν΄λΉ μΈμ€ν΄μ€λ₯Ό λ§λ€μ§ ν νλ¦Ώνν΄μ μΈ μ μλ μ₯μ μ΄ μλ€.
class Person {
name;
year;
constructor(name, year) {
this.name = name;
this.year = year;
}
static fromObject(object) {
return new Person(object.name, object.year);
}
static fromList(list) {
return new Person(list[0], list[1]);
}
}
// newλ₯Ό μ°μ§ μμλ κ°μ²΄λ₯Ό λ°νν΄μ£ΌκΈ° λλ¬Έμ νΈλ¦¬ν ν¨ν΄μ€ νλ
const soo = Person.fromObject({
name: "soo",
year: 1997,
});
console.log(soo); // Person { name: 'soo', year: 1997 }
const soo2 = Person.fromList(["soo2", 1997]);
console.log(soo2); // Person { name: 'soo2', year: 1997 }