
๐ JavaScript ๊ฐ์ฒด(Object)
์๋ฐ์คํฌ๋ฆฝํธ์์ ๊ฐ์ฒด(Object)๋ ํ์ค ์ธ๊ณ์ ์ฌ๋ฌผ์ด๋ ๊ฐ๋ ์ ํํํ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ค.
์๋ฅผ ๋ค์ด ์ฌ๋์ ํํํ๋ ค๋ฉด ์ด๋ฆ(name), ๋์ด(age), ์ทจ๋ฏธ(hobby) ๊ฐ์ ์ ๋ณด๊ฐ ํ์ํ๊ณ ,
์๋์ฐจ๋ฅผ ํํํ๋ ค๋ฉด ๋ธ๋๋(brand), ์์(color), ์๋(sped) ๊ฐ์ ์ ๋ณด๊ฐ ํ์ํ ๊ฒ์ด๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ ๊ฒ๋ค์ ํค-๊ฐ ์(key-value pair)์ ๊ฐ์ฒด๋ก ํํํ๋ฉด,
์ฌ๋ฌ ์ ๋ณด๋ฅผ ํ๋์ ๋ฉ์ด๋ฆฌ๋ก ๋ฌถ์ด ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์๊ฒ ๋๋ค.
์ฆ, ๊ทธ๋ฅ ๊ฐ์ฒด๋ ์ ๋ณด๋ฅผ ๋ฌถ์ด์ ํํํ๋ ๊ทธ๋ฆ ์ ๋๋ก ์ดํดํ๋ฉด ๋๋ค.
๐ฅ ๊ฐ์ฒด ์์ฑ ๋ฐฉ๋ฒ
๊ฐ์ฒด๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์๋ ํฌ๊ฒ ๋ ๊ฐ์ง๊ฐ ์๋ค.
let obj1 = new Object(); // ๊ฐ์ฒด ์์ฑ์ ๋ฐฉ์
let obj2 = {}; // ๊ฐ์ฒด ๋ฆฌํฐ๋ด ๋ฐฉ์
๐ง ๊ฐ์ฒด ํ๋กํผํฐ (์์ฑ)
๊ฐ์ฒด ์์๋ key: value ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ด๊ฒ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์์์ key๋ฅผ ํ๋กํผํฐ(property)๋ผ๊ณ ๋ถ๋ฅธ๋ค.
let person = {
name: "ssosso",
age: 24,
hobby: "ํ
๋์ค",
"is student": true, // ์ด๋ ๊ฒ ๋์ด์ฐ๊ธฐ๊ฐ ์๋ key๋ ๋ฐ์ดํ๋ก ๋ฌถ์ด์ค์ผ ํจ
}
- name, age ,hobby, "is student" ๐๐ป key (ํ๋กํผํฐ ์ด๋ฆ)
- "ssosso", 24, "ํ ๋์ค", true ๐๐ป value (ํ๋กํผํฐ ๊ฐ)
์ถ๊ฐ๋ก, ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด์ ํ๋กํผํฐ ๊ฐ์ผ๋ก๋
๋ฌธ์์ด, ์ซ์, ๋ถ๋ฆฌ์ธ ๋ฟ๋ง ์๋๋ผ, ํจ์๋ ๋ฐฐ์ด, ๋ ๋ค๋ฅธ ๊ฐ์ฒด๊น์ง ์ฌ ์ ์๋ค๊ณ ํ๋ค.
(์ฆ, ๊ฐ์ฒด ์์ ๊ฐ์ฒด๋ฅผ ๋ฃ์ ์๋ ์๊ณ , ๊ฐ์ฒด ์์ ํจ์(๋ฉ์๋)๋ฅผ ๋ฃ์ ์๋ ์๋ค.)
๐จ ๊ฐ์ฒด ํ๋กํผํฐ ๋ค๋ฃจ๊ธฐ
1) ํน์ ํ๋กํํฐ์ ์ ๊ทผํ๊ธฐ (์ฝ๊ธฐ)
๊ฐ์ฒด์ ์์ฑ์ ์ฝ์ ๋๋ ์ ํ๊ธฐ๋ฒ(dot notation) ๋๋ ๊ดํธ ํ๊ธฐ๋ฒ(bracket notation)์ ์ฌ์ฉํ๋ค.
let name = person.name; // ์ ํ๊ธฐ๋ฒ
console.log(name); // ssosso
let age = person["age"]; // ๊ดํธ ํ๊ธฐ๋ฒ
console.log(age); // 24
let property = "hobby"; // ๋ณ์๋ก key๋ฅผ ๋ค๋ฃฐ ๋๋ ๋ฌด์กฐ๊ฑด ๊ดํธ ํ๊ธฐ๋ฒ์ ์ฌ์ฉํด์ผ ํจ
let hobby = person[property]
console.log(hobby); // ํ
๋์ค
2) ์๋ก์ด ํ๋กํผํฐ ์ถ๊ฐํ๊ธฐ
person.job = "FE Developer"; // ์ ํ๊ธฐ๋ฒ
person["favoriteFood"] = "๋ง๋ผํ" // ๊ดํธ ํ๊ธฐ๋ฒ
3) ํ๋กํผํฐ ์์ ํ๊ธฐ
person.job = "Educator"; // ์ ํ๊ธฐ๋ฒ
person["favorite"] = "๋ก๋ณถ์ด"; // ๊ดํธ ํ๊ธฐ๋ฒ
4) ํ๋กํผํฐ ์ญ์ ํ๊ธฐ
delete person.job;
5) ํ๋กํผํฐ์ ์กด์ฌ ์ ๋ฌด ํ์ธํ๊ธฐ
ํน์ key๊ฐ ๊ฐ์ฒด ์์ ์๋์ง ํ์ธํ๊ณ ์ถ์ ๋์๋ in ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
let result1 = "name" in person;
console.log(result1); // true
๐ฉ ์ฌํ) ๊ฐ์ฒด์ ํน๋ณํ ํน์ง
1) ๊ฐ์ฒด๋ ์ฐธ์กฐ ํ์ ์ด๋ค.
let a = { value: 10 };
let b = a;
b.value = 20;
console.log(a.value); // 20
a์ b๋ ๊ฐ์ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๊ธฐ ๋๋ฌธ์
b.value๋ก ๊ฐ์ ์์ ํ๋๋ผ๋ a.value ๊ฐ๋ ๊ฐ์ด 20์ผ๋ก ๋ฐ๋๊ฒ ๋๋ค.
2) ํ๋กํผํฐ ํค๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฌธ์์ด์ด๋ค.
์ซ์์ฒ๋ผ ๋ณด์ด๋ ํค๋ ์๋์ผ๋ก ๋ฌธ์์ด๋ก ๋ณํ๋๋ค๊ณ ํ๋ค.
let obj = { 1: "one" }
console.log(obj[1]); // "one"
console.log(obj["1"]); // "one"
3) ๊ฐ์ฒด ์์ ํจ์๋ฅผ ๋ฃ์ ์ ์๋ค.
let user = {
name: "ssosso",
greet: function () {
console.log("์๋
ํ์ธ์," + this.name + "์
๋๋ค.");
},
bye: () => {
console.log("์๋
ํ๊ฐ์ธ์.");
},
sayGood() {
console.log("๊ตฟ");
},
};
user.greet(); // "์๋
ํ์ธ์, ssosso์
๋๋ค."
user.bye(); // "์๋
ํ๊ฐ์ธ์."
user.sayGood(); // "๊ตฟ"
๐ ๊ฒฐ๋ก
๋จ์ํ ๋ณ์๋ฅผ ๋์ดํ๋ ๊ฒ๋ณด๋ค ๊ฐ์ฒด๋ฅผ ์ฐ๋ฉด ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ํ ๋ฉ์ด๋ฆฌ๋ก ๋ฌถ์ด์ ๊ด๋ฆฌํ ์ ์๋ค๋ ์ ์ด ๋งค์ฐ ํธ๋ฆฌํ ๊ฒ ๊ฐ๋ค.
์ค์ ๋ก๋ ์ค๋ ์์๋ก ์ดํด๋ดค๋ ์ฌ๋์ ์ด๋ฆ, ๋์ด, ์ทจ๋ฏธ, ํ์์ธ์ง ์ฌ๋ถ ๋ฑ์ ๊ฐ๊ฐ์ ๋ณ์๋ก ์ ์ธํ์ผ๋ฉด ๊ด๋ฆฌํ๊ธฐ ํ๋ค์์ ํ ๋ฐ
๊ฐ์ฒด๋ก ๋ฌถ์ด๋๋๊น ํจ์ฌ ๊ด๋ฆฌํ๊ธฐ๊ฐ ์ฌ์ ๋ค.
์์ผ๋ก๋ ๋ฐ์ดํฐ๋ฅผ ํํํ ๋ ๋จ์ ๋ณ์๋ณด๋ค๋
๊ฐ์ฒด๋ก ๊ตฌ์กฐํํด์ ๊ด๋ฆฌํ๋ ์ต๊ด์ ๊ฐ์ ธ์ผ๊ฒ ๋ค.
'๐ป๊ณต๋ถ ๊ธฐ๋ก > ๐ ๋ฆฌ์กํธ ๊ธฐ์ด ์คํฐ๋' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [๋ฆฌ์กํธ ๊ธฐ์ด ์คํฐ๋] JavaScript ํด๋ก์ (Closuer) (1) | 2025.09.23 |
|---|---|
| [๋ฆฌ์กํธ ๊ธฐ์ด ์คํฐ๋] JavaScript ์ค์ฝํ ์ฒด์ธ (Scope Chain) (0) | 2025.09.23 |
| [๋ฆฌ์กํธ ๊ธฐ์ด ์คํฐ๋] JavaScript ์ค์ฝํ(scope) (0) | 2025.09.23 |
| [๋ฆฌ์กํธ ๊ธฐ์ด ์คํฐ๋] JavaScript ์ฝ๋ฐฑ ํจ์ (0) | 2025.09.21 |
| [๋ฆฌ์กํธ ๊ธฐ์ด ์คํฐ๋] JavaScript์ ์์ฑ์ ํจ์ ๋์ ๊ณผ์ (2) | 2025.09.20 |