์๋ฐ์คํฌ๋ฆฝํธ์ ํจ์๋ ๊ฐ์ฒด
function Person(){}
var Person = new Function();
๊ฐ์ฒด์ด๊ธฐ ๋๋ฌธ์ property๋ฅผ ๊ฐ์ง ์ ์์
↓ ํจ๊ป ์ดํดํ๋ ๊ฒ์ด ์ค์
https://rrecoder.tistory.com/87?category=947948
prototype ๊ณผ __proto__
์์)
Person | Person.prototype | kim | lee | __proto__ |
์์ฑ์ ํจ์ | Person์ prototype ๊ฐ์ฒด | ์์ฑ์ ํจ์์ ๊ฐ์ฒด | ์์ฑ์ ํจ์์ ๊ฐ์ฒด 2 | ์์ฑ์ํจ์์ prototype ๊ฐ์ฒด ๊ฐ๋ฅดํด |
function Person(name, first, second, third) {
this.name= name;
this.first = first;
this.second = second;
}
Person.prototype.sum = function(){
return 'prototype' + (this.first + this.second);
}
var kim = new Person('kim',10,20);
var lee = new Person('lee',10,10);
kim.sum = function(){
return 'this'+(this.first + this.second);
}
console.log("kim.sun()",kim.sum());
console.log("lee.sun()",lee.sum());
1๏ธโฃ function Person |
2๏ธโฃPerson.prototype.sum |
3๏ธโฃ new Person |
Person ์ด๋ผ๋ ์์ฑ์ ํจ์ ๊ฐ์ฒด ์์ฑ - prototype ์์ฑ ์์ฑ
Person.prototype ๊ฐ์ฒด ์ถ๊ฐ๋ก ์์ฑ - constructor ์์ฑ ์์ฑ ์ํธ์ฐธ์กฐ |
Person ์ contructor ํจ์๊ฐ ์์ฑ๋จ |
kim ๊ฐ์ฒด ์์ฑ - name, first, second ์์ฑ - __proto__ ์์ฑ |
Person์ prototype -> Persons.prototype <- kim์ __proto__
4๏ธโฃ kim.sum() | 5๏ธโฃlee.sum() |
1) kim.sum() ์ฐพ๊ธฐ (์์) kim.sum = funtion (){ this ~~ } |
1) lee.sum ์ฐพ๊ธฐ (์์) 2) lee.__proto__์ sum ์ฐพ๊ธฐ (์์) lee.__proto__ -> Person's prototype sum |
๐ง์๊ฐํด๋ณผ ๊ฒ
๊ฐ์ฒด ์์ฒด์ ์ผ๋ก ๊ฐ๊ณ ์์ง ์์ ๊ฐ ์ด๋ป๊ฒ ์ฌ์ฉํ๋?
์์ฑ์๋ก ๋ง๋ค์ด์ง ๊ฐ์ฒด๋ผ๋ฉด,
๊ฐ์ฒด์ property ์ค __proto__๋ฅผ ํตํด ๋ถ๋ชจ.prototype ๊ฐ์ฒด์์ ๊ฐ ์ฐพ์ํธ์ถ
__proto__์ prototype์ ์ฐจ์ด์
prototype ์ ๋ฐ๋ก ๊ฐ์ฒด๋ฅผ ๋์ด ์์ ๊ฐ์ฒด์์ ํธ์ถํ ์ ์๋๋ก ํ๊ณ ,
__proto__ ๋ ๋ถ๋ชจ prototype๊ฐ์ฒด์ ์ฐ๊ฒฐํ์ฌ ๋ถ๋ชจ์ ํ๋กํผํฐ,๋ฉ์๋๋ฅผ ํธ์ถํ ์ ์๋๋ก ํจ
'๐ JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
javascript ๊ณผ Promise ์ async await (0) | 2021.03.15 |
---|---|
[Javascript] Prototype ์ ํตํ ์์ ๊ณผ __proto__ +(MDN ์์ ๋ก ๋ณด๋ Prototype ์์) (0) | 2021.03.12 |
[Javascript] __proto__ ์ ์์ (0) | 2021.03.11 |
JavaScript ํจ์ํธ์ถ Call / Bind ๋ฉ์๋ (0) | 2021.03.11 |
JavaScript ํ๋กํ ํ์ (prototype) ์ดํด (0) | 2021.03.10 |
๋๊ธ