Getter
1. ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณตํด์ ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ ๋
2. privateํ ๊ฐ์ ๋ฐํํ ๋
Setter
1. ๊ฐ์ ์ค์ ํด์ค๋
- ๋ฌผ๋ก Setter ์์ด๋ ๋ฐ๊ฟ ์๋ ์์ง๋ง ํ๋กํผํฐ๋ฅผ private์ผ๋ก ๋ฐ๊ฟจ์๋๋ Setter์์ด ๋ฐ๊ฟ ์ ์๋ค.
- private์ ์ง์ ์ก์ธ์ค๊ฐ ๋ถ๊ฐ
2. Setter๋ ์ ์ํ ๊ฐ์ ๋ณ๊ฒฝํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ง์ด ์ ํธํ์ง๋ ์์
class Person {
name;
year;
constructor(name, year) {
this.name = name;
this.year = year;
}
// Getter, Setter
get getNameAndYear() {
return `${this.name}-${this.year}`;
}
// ๋ฐ๊พธ๊ณ ์ถ์ ํ๋กํผํฐ์ ์ด๋ฆ๊ณผ ๊ฒน์น๊ฒ ๋ง์ด ์ค์ ํ๋ค.
// setter๋ ๋ฌด์กฐ๊ฑด 1๊ฐ์ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฐ๊ฒ ๋์ด ์๋ค.
set setName(name) {
this.name = name;
}
sayName() {
return `์๋
ํ์ธ์ ์ ๋ ${this.name}์
๋๋ค.`
}
}
// ํด๋์ค ์ฌ์ฉ
const soo = new Person('์ต์์', 1997);
console.log(soo); // Person { name: '์ต์์', year: 1997 }
// Getter ์ฌ์ฉ
console.log(soo.getNameAndYear); // ์ต์์-1997
// Setter ์ฌ์ฉ
soo.setName = '์์';
console.log(soo); // Person { name: '์์', year: 1997 }
Getter, Setter with private ๐
class Person2 {
#name;
year;
constructor(name, year) {
this.#name = name;
this.year = year;
}
get name() {
return this.#name;
}
set name(name) {
this.#name = name;
}
}
const sooyoung = new Person2('sooyoung', 1997);
console.log(sooyoung); // Person2 { year: 1997 }
// Getter ์ฌ์ฉํ๋ฉด private์ ์ ๊ทผํ ์ ์๋ค.
console.log(sooyoung.name); // sooyoung
// Setter ์ฌ์ฉ๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์ ๊ทผ ๊ฐ๋ฅ
sooyoung.name = '์ต์์';
console.log(sooyoung.name); // ์ต์์