๊ฐ์ฒด(object)
https://sunshineyellow.tistory.com/17
์ ๊ธ์์ ์ ๊น ์ง๊ณ ๋์ด๊ฐ ๊ฐ์ฒด๋ฅผ ํด๋์ค์ ํจ๊ป ์ฌํํ์ตํ๋ค.
class Goodcoder {
//constructor
constructor(name, age) {
this.name = name;
this.age = age;
}
//method
coding() {
console.log(`${this.name}, good job!`);
}
};
//object
const noran = new Goodcoder()
ํด๋์ค์ ์ค๋ธ์ ํธ(๊ฐ์ฒด)๋ new ์ฐ์ฐ์๋ฅผ ๊ผญ ์ฌ์ฉํด์ผ ํ๋ค.
Getter์ Setter
class Goodcoder {
//constructor
constructor(name, age) {
this.name = name;
this.age = age;
}
//getter
get age() {
return this._age; // call stack size ์๋ฌ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ณ์ ์์ _๋ฅผ ๋ถ์ธ๋ค.
}
//setter
set age(value) {
if (value < 0) {
throw Error('๋์ด๋ ์ ์๋ก ์์ฑํด ์ฃผ์ธ์.');
}
this._age = value; // call stack size ์๋ฌ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ณ์ ์์ _๋ฅผ ๋ถ์ธ๋ค.
}
};
//object
const noran = new Goodcoder('noran', -1) //'age๋ -1์ด ๋ ์ ์๋ค.'๋ ์ค์ ์ผ ๋
getter๋ age(์ค๋ธ์ ํธ ๋๋ ๋ณ์๊ฐ ๋ ์ ์๋ค.)์ ๊ฐ์ ๊ฐ์ ธ์ค๊ณ , setter๋ age์ ๊ฐ์ ์ค์ ํ๋ค.
์ ์ฝ๋์์ get์ ์ ์ํ๋ ์๊ฐ, constructor ๋ด์ this.age = age;์์ this.age๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ค์ด์๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ค๋ ๊ฒ์ด ์๋๋ผ get์ ํธ์ถํ๊ฒ ๋๋ค.
๋ํ set์ ์ ์ํ๋ ์๊ฐ, constructor ๋ด์ this.age = age;์์ = age;๋ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ ํ ๋นํ๋ ๊ฒ์ด ์๋๋ผ set์ ํธ์ถํ๊ฒ ๋๋ค.
์ ์ฝ๋์์ ๋์ด๊ฐ 0 ์๋๋ก ๋ด๋ ค๊ฐ ์ ์๊ฒ ํ๋ setter๋ ์ด๋ฐ ์์ผ๋ก๋ ์์ฑ๋ ์ ์๋ค.
//setter
set age(value) {
this._age = value < 0 ? 0 : value;
}
์ถ์ฒ : ๋๋ฆผ์ฝ๋ฉ https://www.youtube.com/@dream-coding / MDN https://developer.mozilla.org/ko