๊ฐ์ฒด ๋ฆฌํฐ๋ด
๊ฐ์ฒด๋?
- ์๋ฐ์คํฌ๋ฆฝํธ๋ ๊ฐ์ฒด ๊ธฐ๋ฐ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์ ๋๋ค.
- ์์๊ฐ์ ์ ์ธํ ๋๋จธ์ง๋ ๋ชจ๋ ๊ฐ์ฒด ์ ๋๋ค.
- ์์ ๊ฐ์ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ๊ฐ์ด์ง๋ง, ๊ฐ์ฒด๋ ๋ณ๊ฒฝ ๊ฐ๋ฅํ ๊ฐ์ ๋๋ค.
- ๊ฐ์ฒด๋ ํ๋กํผํฐ(
property
)๋ก ๊ตฌ์ฑ๋ ์งํฉ์ด๋ฉฐ ํ๋กํผํฐ๋ ํค(key
)์ ๊ฐ(value
)๋ก ๊ตฌ์ฑ๋๋ค. - ํ๋กํผํฐ์ ๊ฐ์ด ํจ์์ผ ๊ฒฝ์ฐ ๋ฉ์๋(
method
)๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.์๋ฐ์คํฌ๋ฆฝํธ์์๋ ๊ฐ์ฒด์ ํจ์๋ ๋ฐ์ ํ ๊ด๊ณ
ํจ์๋ก ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ๋ ํ๊ณ ํจ์ ์์ฒด๊ฐ ๊ฐ์ฒด์ด๊ธฐ๋ ํฉ๋๋ค.
๊ฐ์ฒด์ ์์ฑ
- ์๋ฐ์คํฌ๋ฆฝํธ๋ ํ๋กํ ํ์
๊ธฐ๋ฐ ๊ฐ์ฒด์งํฅ ์ธ์ด๋ก ๋ค์ํ ๊ฐ์ฒด ์์ฑ๋ฐฉ๋ฒ์ ๊ฐ์ง
- ๊ฐ์ฒด ๋ฆฌํฐ๋ด
- Object ์์ฑ์ ํจ์
- ์์ฑ์ ํจ์
- Object.create ๋ฉ์๋
- ํด๋์ค(es6)
- ๊ฐ์ฒด๋ฅผ ์ค๊ดํธ
{}
๋ด์ ํ๋กํผํฐ๋ฅผ ์ง์ ์ ์ํด์ ์ฌ์ฉํ๋ ๊ฒ์ ๊ฐ์ฒด ๋ฆฌํฐ๋ด ํ๊ธฐ๋ฒ - ๊ฐ์ฒด๋ฆฌํฐ๋ด ์ธ์๋ ๋ชจ๋ ํจ์๋ฅผ ์ด์ฉํ ๊ฐ์ฒด ์์ฑ ๋ฐฉ๋ฒ
ํ๋กํผํฐ
- ํ๋กํผํฐ๋ ํค์ ๊ฐ์ผ๋ก ์ด๋ฃจ์ด์ง
- ํค์ ๊ฒฝ์ฐ ์๋ณ์ ๋ค์ด๋ฐ ๊ท์น์ ๋ฐ๋ฅด์ง ์์ผ๋ฉด ๋ฐ์ดํ๋ก ๋ฌต์ด์ผํจ
var person = { firstName : 'Homie', last-name : 'Kim' // ์๋ฌ๋จ, -๋ฅผ ์ฐ์ฐ์๋ก ์ธ์ํ๊ธฐ ๋๋ฌธ 'last-name' : 'Kim' // ์๋ฌ x };
- ๋๊ดํธ
[]
์ฌ์ฉ์ ํ๋กํผํฐ ๋์ ์ผ๋ก ์์ฑ๊ฐ๋ฅ - ํค๋ ๋ด๋ถ์ ์ผ๋ก ๋ฌธ์์ด๋ก ๋ณํ
- ํค ์ค๋ณต ์ ์ธ์ ์๋ฌ x, ๋ฎ์ด ์์ ์ง
- ๋๊ดํธ
ํ๋กํผํฐ ์ ๊ทผ
- ๋ง์นจํ ํน์ ๋๊ดํธ๋ก ์ ๊ทผ ๊ฐ๋ฅ
- ๋๊ดํธ ํ๊ธฐ๋ฒ์ผ๋ก ์ ๊ทผ ์ ๋ฌธ์์ด์ฌ์ฉํด์ผํจ
- ๊ฐ์ฒด์ ์กด์ฌํ์ง ์๋ ํ๋กํผํฐ์ ์ ๊ทผ ์
undefined
๋ฐํ, ์๋ฌ๋ ์๋จ
es6 ๊ฐ์ฒด ๋ฆฌํฐ๋ด์ ํ์ฅ ๊ธฐ๋ฅ
ํ๋กํผํฐ ์ถ์ฝ ํํ
- es6์์๋ ํ๋กํผํฐ ๊ฐ์ผ๋ก ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ณ์์ด๋ฆ๊ณผ ํ๋กํผํฐ ํค๊ฐ ๋์ผํ ์ด๋ฆ์ผ ๋ ํค๋ฅผ ์๋ตํ ์ ์๋ค.
let x = 1, y = 2;
// ํ๋กํผํฐ ์ถ์ฝ ํํ
const obj = { x, y };
console.log(obj); // {x: 1, y: 2}
๊ณ์ฐ๋ ํ๋กํผํฐ ์ด๋ฆ
- ๋ฌธ์์ด ํ์ ์ผ๋ก ํ๊ฐ ๋ ์ ์๋ ํํ์์ ํตํด ํ๋กํผํฐ ํค๋ฅผ ์์ฑํ๋ ๊ฒ์ ๊ณ์ฐ๋ ํ๋กํผํฐ ์ด๋ฆ์ด๋ผ๊ณ ํ๋ค.
// ES6
const prefix = 'prop';
let i = 0;
// ๊ฐ์ฒด ๋ฆฌํฐ๋ด ๋ด๋ถ์์ ๊ณ์ฐ๋ ํ๋กํผํฐ ์ด๋ฆ์ผ๋ก ํ๋กํผํฐ ํค ๋์ ์์ฑ
const obj = {
[`${prefix}-${++i}`]: i,
[`${prefix}-${++i}`]: i,
[`${prefix}-${++i}`]: i
};
console.log(obj); // {prop-1: 1, prop-2: 2, prop-3: 3}
๋ฉ์๋ ์ถ์ฝ ํํ
- ๊ฐ์ฒด์ ๋ฉ์๋๋ฅผ ์ ์ ํ ๋
function
ํค์๋๋ฅผ ์๋ต ๊ฐ๋ฅ
// ES6
const obj = {
name: 'Lee',
// ๋ฉ์๋ ์ถ์ฝ ํํ
sayHi() {
console.log('Hi! ' + this.name);
}
};
obj.sayHi(); // Hi! Lee
'javascript > ๐ study' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[2์ฃผ์ฐจ ์คํฐ๋]12์ฅ-ํจ์ (0) | 2022.02.06 |
---|---|
[2์ฃผ์ฐจ ์คํฐ๋]11์ฅ-์์๊ฐ๊ณผ ๊ฐ์ฒด์ ๋น๊ต (0) | 2022.02.06 |
[์คํฐ๋ 1์ฃผ์ฐจ]9์ฅ ํ์ ๋ณํ ์ ๋จ์ถ ํ๊ฐ (0) | 2022.02.04 |
[์คํฐ๋ 1์ฃผ์ฐจ]7์ฅ ์ฐ์ฐ์ (0) | 2022.02.04 |
[์คํฐ๋ 1์ฃผ์ฐจ] 6์ฅ ๋ฐ์ดํฐ ํ์ (0) | 2022.02.04 |
๋๊ธ