๋ชฉ์ฐจ
JS์ Object๋ฅผ ์์ฑํ๋ constructor ๋ฌธ๋ฒ์ ๋ํด์ ์์๋ณด์.
0. Object์ ๋ณต์ฌ ๋ฌธ์
Object๋ Reference ๋ฐ์ดํฐ ํ์ ์ด๋ค. ๋ฐ๋ผ์ ๋ณต์ฌ๋ฅผ ํ ๋ ์๋์ ๊ฐ์ด ๋จ์ํ๊ฒ ์งํํด์๋ ์๋๋ค.
์๋ชป๋ ๊ฐ์ฒด ๋ณต์ฌ ์์
let obj1 = {name: "Kassid"};
let obj2 = obj1;
์ด๋ ๊ฒ ๋ณต์ฌ๋ฅผ ํ๊ฒ ๋๋ค๋ฉด ๊ฐ ์์ฒด์ ๋ณต์ฌ๊ฐ ์๋ ๋ ํผ๋ฐ์ค๋ฅผ ๋ณต์ฌํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์
์์ ํ ๋ณต์ฌ๋ผ๊ณ ํ ์ ์๋ค.
1. constructor ๋ฌธ๋ฒ
constructor๋ ์์ object๋ฅผ ์์ฑ๊ธฐ๊ณ๋ผ๊ณ ํ ์ ์๋ค. ์ด๋ฅผ ์ด์ฉํด ์์ ๋ณต์ฌ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
์ด๋ฅผ ์ด์ฉํด์ ๋น์ทํ ๊ฐ์ฒด๋ฅผ ์์ฝ๊ฒ ์์ฐํด๋ผ ์ ์๋ค.
์ฌ์ฉ๋ฒ
function ์์ฐ๊ธฐ๊ณ๋ช
(){
this.์์ฑ = ...;
...
}
constructor ๋ฌธ๋ฒ์ ์ด์ฒ๋ผ function ํค์๋๋ฅผ ์ด์ฉํ๋ค.
๋ํ ๊ฐ ์ธ์คํด์ค์ ์์ฑ๋ค์ this. ~ ์ผ๋ก ์ง์ ํด์ฃผ๋ฉด ๋๋ค.
์์ 1. ๋ณต์ฌ
function Student(){
this.name = "Kassid";
this.code = "1";
}
let ํ์1 = new Student();
let ํ์2 = new Student();
console.log(ํ์1, ํ์2);
this.~ ์ ๊ฐ์ ์ง์ ํ๋ฉด ์ด์ฒ๋ผ ๋ณต์ฌ๋ฅผ ํ ์ ์๋ค.
์์ 2. ์์ฐ
function Student(name, code){
this.name = name;
this.code = code;
}
let ํ์1 = new Student("Kassid", 1);
let ํ์2 = new Student("David", 2);
console.log(ํ์1, ํ์2);
ํ๋ผ๋ฏธํฐ๋ฅผ ์ด์ฉํด ์ธ์คํด์ค๋ง๋ค ์์ฑ๋ค์ ๋ค๋ฅด๊ฒ ์ ์ฉํ ์ ์๋ค.
๋ฌผ๋ก ๊ธฐ๋ณธ๊ฐ์ ์ง์ ํด์ฃผ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค.
'๐ | WEB DEV > Vanilla JS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JS_๊ธฐ๋ณธ ๋ฌธ๋ฒ (34)_ prototype (ํน์ง ๋ฐ constructor์์ ์ฐจ์ด) (0) | 2023.08.11 |
---|---|
JS_๊ธฐ๋ณธ ๋ฌธ๋ฒ (31)_ ํจ์ ํ๋ผ๋ฏธํฐ (default, arguments) (0) | 2023.08.07 |
JS_๊ธฐ๋ณธ ๋ฌธ๋ฒ (30)_ Spread Operator (0) | 2023.08.06 |
JS_๊ธฐ๋ณธ ๋ฌธ๋ฒ (29)_ Tagged Literals (0) | 2023.08.05 |
JS_๋ฌธ๋ฒ (๊ฐ์ธ)_ ๋ณ์ ์ด์ ๋ฆฌ (0) | 2023.08.04 |
๋๊ธ