
๊ฐ์ฒด์ ํด๋น property๊ฐ ์๋ ์ง ํ์ธํ๋ ์์
๋ถ๋ฆฐํ์ผ๋ก ์๋ ค์ค
proto: Object => ํ๋กํ ํ์
๊ฐ์ฒด์์ ๊ทธ property๊ฐ ์์ผ๋ฉด, ํ์์ ๋ฉ์ถ๊ณ ,
์์ผ๋ฉด ์์ ๋ํ๋ prototype์์ property๋ฅผ ์ฐพ์.
๊ณตํต๋ ๋ถ๋ถ์ ์ฒ๋ฆฌํ ๋ proty๋ก ํด๊ฒฐํ๊ธฐ
const car = {
wheels:4,
drive() {
console.log("drive..");
},
};
const bmw = {
color: "red",
navigation:1,
};
const benz = {
color: "black",
};
const audi={
color: "blue",
};
bmw.__proto__= car; //bmw๋ฅผ car์ ์์์ ๋ฐ๋ ๊ฒ(proty๋ฅผ ๋ฐ์)
benz.__proto__= car;
audi.__proto__= car;
bmw.color //red
bmw.wheels; //4 -> bmw์์ ์ฐพ๊ณ ์์ผ๋ฉด prototype์์ ์ฐพ์๋.
const x5 = {
color: "white",
name: "x5",
};
x5.__proto__=bmw; //x5๊ฐ bmw๋ฅผ ์์๋ฐ์ ๊ฒ.
const Bmw = function (color) {
this.color = color;
};
Bmw.prototype.wheels=4;
Bmw.prototype.drive = function () {
console.log('drive..');
};
//์์ฑ์ ํจ์๊ฐ ์์ฑํ๋ ๊ฐ์ฒด์ __proto__๋ฅผ .prototype์ผ๋ก ์ค์ ํ๋ค๋ ์๋ฏธ์
const x5 = new Bmw('red');
const z4 = new Bmw('blue');
//ํ๋๋ง ๋ง๋ค์ด์ฃผ๋ฉด ์ผ์ผํ ํด์ฃผ์ง ์์๋ ๋จ!
์๋ก์ด ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด ๋ผ ๋, ๊ทธ ๊ฐ์ฒด๋ ์๋ก์ด ๊ฐ์ฒด์ instace๋ผ๊ณ ํจ
๊ฐ์ฒด์ ์์ฑ์๋ฅผ ๋น๊ต, ํด๋น ๊ฐ์ฒด๊ฐ ๊ทธ ์์ฑ์๋ก๋ถํฐ ๋์จ ๊ฑด์ง ํ์ธํด์
true, false๋ฅผ ๋ฐํํจ.
๐
const Bmw = function (color) {
this.color = color;
};
Bmw.prototype.wheels=4;
Bmw.prototype.drive = function () {
console.log('drive..');
};
Bmw.prototype.navigation=1;
Bmw.prototype.stop=function() {
console.log('stop!');
};
const x5 = new Bmw('red');
const z4 = new Bmw('blue');
z4 instaceof Bmw //true
z4.constructor == Bmw; //true
>>๐ ๊ฐ๋จํ๊ฒ ๋ฐ์์ ๊ฐ์ด ํด๋ ๋จ!
Bmw.prototype = {
wheels:4,
drive() {
console.log("drive...");
},
navigation:1,
stop(){ console.log('stop!');
},
};
const x5 = new Bmw('red');
const z4 = new Bmw('blue');
z4.constructor == Bmw; //false
>>โ๏ธ๊ทธ๋ฌ๋ constructor์ false๊ฐ ๋์ด
๋ฐ๋ผ์ ํ๋์ฉ ์ถ๊ฐํ๋ ๊ฒ ๋ ๋์ ์๋,
ํน์
๐
Bmw.prototype = {
**constructor: Bmw,** //์ด๋ ๊ฒ ์๋์ผ๋ก ๋ช
์ํด์ค๋ ๋จ!
wheels:4,
drive() {
console.log("drive...");
},
navigation:1,
stop(){ console.log('stop!');
},
};
z4.constructor == Bmw; //true
๐
const Bmw=function (color){
const c = color;
this.getColor=function() {
console.log(c);
};
};
const x5=new Bmw('red');
>์ด๋๋ ์์ ๋ฐ๊ฟ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์,
์์ฑ๋ ๋น์์ context๋ฅผ ๊ธฐ์ตํ๋ ๊ฒ!