230226(์ผ)
๐ ์ฑ์ฅ์ผ์ง 3.1
์ฑ
ํ๋ณตํ ์ด๊ธฐ์ฃผ์์(์จ์ธ ๋ค์ด์ด)
์ ๋ด์ฉ์ ์๊ทน๋ฐ์ ์์ํ๋ ์๋ฐํ ์ฑ์ฅ๊ธฐ๋ก
์ด์์๋ ๊ฝ๊ณผ ์ฃฝ์ ๊ฝ์ ์ด๋ป๊ฒ ๊ตฌ๋ณํ๋๊ฐ?
์ฑ์ฅํ๊ณ ์๋ ๊ฒ์ด ์ด์ ์๋ ๊ฒ์ด๋ค.
์๋ช ์ ์ ์ผํ ์ฆ๊ฑฐ๋ ์ฑ์ฅ์ด๋ค!
๐ณ ํค์๋ (1.0)
์ต๋ํ ๊ฐ๋จํ๊ฒ ์ ๋ฆฌ, ์ถํ์ ๋ณด๋ฉด์ ์ค์ค๋ก ์ค๋ช
๐ ๊ฒฝํ ์์ฃผ๋ก (2.0)
๋จ์ ์ ๋ณด๋ฅผ ์ ๋ฌํ๊ธฐ๋ณด๋ค ๋ฌด์์ ๋ฐฐ์ ๊ณ ์ด๋ป๊ฒ ํด๊ฒฐํ๋์ง ์งง๊ณ ๊ฐ๋จํ๊ฒ ์์ฑ
โ๏ธ ์ ํด์ง ํ ํ๋ฆฟ์ ๋ง์ถฐ์ (3.0)
ํค์๋, ๊ฒฝํ ๋ชจ๋ ์ข๋ค. ๋ค๋ง ๋งค์ผ ์์ฑํ๊ธฐ๋ก ๋ง์ ๋จน์๋งํผ ํต์ฌ๋ง ๊ฐ๊ฒฐํ๊ฒ ์ ๋ฆฌํ ์ ์๊ฒ ํ ํ๋ฆฟ์ ์์ฑ (3.1) 230102๋ถํฐ ์์๋๋ ํ์ต์ ๊ดํ ๋ด์ฉ ์ถ๊ฐ
๐ ์ค๋์ ํค์๋
p179. ์คํํฑ, ํ๋กํ ํ์ , ์ธ์คํด์ค ๋ฉ์๋ ์์ + Quiz 1, 2)
function Test() {};
Test.staticMethod = function() { console.log('์คํํฑ ๋ฉ์๋์
๋๋ค.') };
Test.prototype.prototypeMethod = function() { console.log('ํ๋กํ ํ์
๋ฉ์๋์
๋๋ค.') };
const test = new Test();
test.instanceMethod = function() { console.log('์ธ์คํด์ค ๋งค์๋์
๋๋ค.') };
Quiz1) ์์ ์ฝ๋์์ ์๋ก์ด ๊ฐ์ฒด(์ธ์คํด์ค) test2๋ฅผ ์ ์ธํ๋ฉด test2๋ ์ด๋ค ๋ฉ์๋(๋ค)๋ฅผ ๊ฐ๊ณ ์๋์?
์์๋ต์
const test2 = new Test();
// test2๊ฐ ์ง์ ๊ฐ๊ณ ์๋ ๋ฉ์๋๋ prototypeMethod()
test2.prototypeMethod();
Quiz2) test2์์ ์คํํฑ ๋ฉ์๋์ ์ ๊ทผํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์๊น์?
์์๋ต์
test2.constructor.staticMethod()
p182. Quiz 3) ํด๋์ค ์์์ ํ๋กํ ํ์ ์ผ๋ก ๊ตฌํํด๋ณด๊ธฐ
์๋์ ํด๋์ค๋ฅผ ํ๋กํ ํ์ ์ผ๋ก ํํํด์ฃผ์ธ์!
class Animal {
constructor(name, age) {
this.name = name;
this.age = age;
}
}
class Dog extends Animal {
constructor(name, age) {
super(name, age);
}
bark() {
console.log('๋ฉ๋ฉ!');
}
}
์์๋ต์
// 1๋ฒ ๋ฐฉ๋ฒ
function Animal(name, age) {
this.name = name;
this.age = age;
}
function Dog() {
this.bark = function() {
console.log('๋ฉ๋ฉ!');
}
}
Dog.prototype = new Animal('hodu', 3);
const hodu = new Dog();
console.log(hodu.name); // 'hodu';
console.log(hodu.age); // 3
hodu.bark(); // '๋ฉ๋ฉ!'
// 2๋ฒ ๋ฐฉ๋ฒ
function Animal(name, age) {
this.name = name;
this.age = age;
}
function Dog(name, age) {
Animal.call(this, name, age);
this.bark = function() {
console.log('๋ฉ๋ฉ!');
}
}
const hodu = new Dog('hodu', 3);
console.log(hodu.name); // 'hodu';
console.log(hodu.age); // 3
hodu.bark(); // '๋ฉ๋ฉ!'
์ฐธ๊ณ
- ์ฑ : ์ฝ์ด ์๋ฐ์คํฌ๋ฆฝํธ
๐ ์์ฝ ๋ฐ ํ๋ฃจ ๊ฐ๋จ ํ๊ณ
๋ง์ง๋ง ์ฑํฐ์ธ class๋ฅผ ๋์ผ๋ก ์ฝ์ด ์๋ฐ์คํฌ๋ฆฝํธ
์คํฐ๋๋ฅผ ์๋ฃํ์๋ค. ์กฐ๊ธ์ ๋ถ๋ด์ด ๋์๋ ๊ฒ๋ ์ฌ์ค์ด๋ค. ์คํฐ๋๋ถํฐ ์ฑ
์ ์ ์ํ ๊ฒ๋ ๋์๊ธฐ ๋๋ฌธ์ด๋ค. ํ์ง๋ง ์ด๋์ ๊ณต๋ถ๋ฅผ ํ๊ณ
์คํฐ๋๋ฅผ ์ค๋นํ๋ ์๊ฐ์ด ์คํ๋ ค ํ์ต์ ์๊ธฐ๋ฅผ ๋ถ์ด๋ฃ์ด์ฃผ์๋ค. ๋, ๊ต์ก ๋๋ฉ์ธ์๋ ๊ด์ฌ์ด ์๊ธฐ๊ฒ ๋๋ฉด์ ์ผ์์ด์กฐ๊ฐ ์๋์๋ ์๊ฐ์ด ๋ ๋ค. ์ด์ฌํ ์ฐธ์ฌํด์ค ์คํฐ๋์๋ค์๊ฒ๋ ๋๋ฌด ๊ณ ๋ง๊ณ ๊ฐ์ฌํ๋ค.
์์ง ๋ง์ด ๋ถ์กฑํ์ง๋ง, ์์ฃผ ์กฐ๊ธ์ด๋ผ๋ ํ์๋ค์๊ฒ ๋์์ด ๋์์ผ๋ฉด ์ข๊ฒ ๋ค. ์คํฐ๋๋ ์ด์ ์์์ด๊ณ ์์ผ๋ก ๋ ๋ง์ด ๋์๋๋ ํ๋์ผ๋ก ๊ฐ์ ธ๊ฐ๋ณผ ์๊ฐ์ด๋ค! ์ฝ๊ฐ์ ๋ถ๋ด๊ณผ ์กฐ๊ธ์ ์ฑ
์๊ฐ์ ๊ฐ๊ณ
์คํฐ๋์๋ค๊ณผ ํจ๊ป ์ข์ ์๋์ง๋ฅผ ๋ด๋ฉด์ ์ฑ์ฅํ ์ ์๋๋ก ํ์!
์ค๋์ ์ํ ์
- ์๋์ฐ ๋ ธํธ๋ถ, ๋ฆฌ๋ ์ค๋ก ์ ํ ์๋ฃ(์ถํ ๋ณด๋ฆ์นผ๋ผ ์์ฑ ์์ )
- ์คํฐ๋ ์ฒซ ์ฑ ์ ๋ง๋ฌด๋ฆฌํ ์ :)
์ค๋์ ์์ฌ์ด ์
- ๊ณํ์ ์ ์ด๋์ ๊ฒ์ ๋คํ์ง๋ ๋ชปํ ์ ..? ๊ทผ๋ฐ ์ด๊ฑด ๊ด์ฐฎ๋ค~!