Jieunny์ ๋ธ๋ก๊ทธ
S2) Unit2. [์ค์ต] Beesbeesbees ๋ณธ๋ฌธ
๐ฃ ์์์ ์ด์ฉํด์ ํด๋์ค ๊ตฌํํ๊ธฐ
โ๏ธ ๊ณ์ธต ๊ตฌ์กฐ
๐ฃ super, extends ๋?
โ๏ธ super() : ๋ถ๋ชจ ํด๋์ค์ ํจ์๋ฅผ ํธ์ถํ ๋ ์ฌ์ฉํ๋ค.
this ํค์๋๊ฐ ์ฌ์ฉ๋๊ธฐ ์ ์ ํธ์ถ๋์ด์ผ ํ๋ค. -> ์๊ทธ๋ฌ๋ฉด ์ฐธ์กฐ์ค๋ฅ ๋ฐ์
โ๏ธ extends() : ํด๋์ค๋ฅผ ๋ค๋ฅธ ํด๋์ค์ ์์์ผ๋ก ๋ง๋ค ๋ ์ฌ์ฉํ๋ค.
class ๊ธฐ๋ฐ์ผ๋ก ์์์ ๋ฐ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง, JS๋ prototype ๊ธฐ๋ฐ์ ์ธ์ด์ด๊ธฐ ๋๋ฌธ์ ๋ด๋ถ์ ์ผ๋ก๋ prototype chain์ ํตํด ์์์ด ์ด๋ฃจ์ด์ง๋ค.
๐ฃ ์ฝ๋
1๏ธโฃ Grub.js
class Grub {
constructor(){
this.age = 0;
this.color = 'pink';
this.food = 'jelly';
}
eat() {
return `Mmmmmmmmm ${this.food}`;
}
}
โฐ ๋ถ๋ชจ ํด๋์ค ์ด๋ฏ๋ก ์์ฑ์๋ง ์์ฑํด์ฃผ๋ฉด ๋๋ค.
2๏ธโฃ Bee.js
const Grub = require('./Grub');
class Bee extends Grub{
constructor(){
super();
this.age = 5;
this.color = 'yellow';
this.job = 'Keep on growing';
}
}
module.exports = Bee;
โฐ age์ color๋ Grub ํด๋์ค์์ ์์๋ฐ์๋ค.
โฐ Grub.js์์ Grubํด๋์ค๋ฅผ ๊ฐ์ ธ์์ผ ์์ ๊ฐ๋ฅํ๋ค.
3๏ธโฃ HoneyMakerBee.js
const Bee = require('./Bee');
class HoneyMakerBee extends Bee{
constructor(){
super();
this.age = 10;
this.job = 'make honey';
this.honeyPot = 0;
}
makeHoney() {
this.honeyPot++;
}
giveHoney() {
this.honeyPot--;
}
}
module.exports = HoneyMakerBee;
โฐ Grub๋ฅผ ์์๋ฐ์ Bee๋ฅผ ์์ํ๊ณ ์๊ธฐ ๋๋ฌธ์ age๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
4๏ธโฃ ForagerBee.js
const Bee = require('./Bee');
class ForagerBee extends Bee {
constructor(){
super();
this.age = 10;
this.job = 'find pollen';
this.canFly = true;
this.treasureChest = [];
}
forage(treasure) {
this.treasureChest.push(treasure);
}
}
module.exports = ForagerBee;
โฐ HoneyMakerBee.js์ ๋ง์ฐฌ๊ฐ์ง.
'CodeStates > Training' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
S2) Unit3. [์ค์ต] ํ์ด๋จธ API (0) | 2023.01.18 |
---|---|
S2) Unit3. [์ค์ต] Underbar (0) | 2023.01.17 |
[์ฝํ๋ฆฟ] Daily Coding (0) | 2023.01.13 |
Unit 11. [์ค์ต] ๋๋ง์ ์๊ณ ๋ผ ์คํ ์ด์ธ ๋ง๋ค๊ธฐ (0) | 2023.01.10 |
Unit 10. [์ค์ต] ํ์๊ฐ์ ํ์ด์ง ์ ํจ์ฑ ๊ฒ์ฌ (0) | 2023.01.10 |