์๋ฐ์คํฌ๋ฆฝํธ๋ ๊ฐ์ฒด ๊ธฐ๋ฐ์ ์คํฌ๋ฆฝํธ ์ธ์ด์ ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฐ์ฒด๋ํค(key)
,๊ฐ(value)
์ผ๋ก ๊ตฌ์ฑ๋ํ๋กํผํฐ(Property)
์ ์งํฉ์ ๋๋ค. ํ๋กํผํฐ ๊ฐ์ด ํจ์์ผ ๊ฒฝ์ฐ์๋ ์ด๊ฒ์๋ฉ์๋
๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
ํ๋กํผํฐ๋
ํค(์ด๋ฆ)
๊ณผ๊ฐ
์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ํ๋กํผํฐ๋ ํ๋กํผํฐ ํค๋ก ์ ์ผํ๊ฒ ์๋ณํ ์ ์์ต๋๋ค. ์ฆ, ํ๋กํผํฐ ํค๋ ํ๋กํผํฐ๋ฅผ ์๋ณํ๊ธฐ ์ํ ์๋ณ์(identifier)์ ๋๋ค.
ํ๋กํผํฐ ํค: ๋น ๋ฌธ์์ด์ ํฌํจํ๋ ๋ชจ๋ ๋ฌธ์์ด ๋๋ symbol๊ฐ
ํ๋กํผํฐ ๊ฐ: ๋ชจ๋ ๊ฐ
ํ๋กํผํฐ ํค์ ๋ฌธ์์ด์ด๋ symbol ๊ฐ ์ด์ธ์ ๊ฐ์ ์ง์ ํ๋ฉด ์๋ฌต์ ์ผ๋ก ํ์ ์ด ๋ณํ๋์ด
๋ฌธ์์ด
์ด ๋๋ค. ์ด๋ฏธ ์กด์ฌํ๋ ํ๋กํผํฐ ํค๋ฅผ ์ค๋ณต ์ ์ธํ๋ฉด ๋์ค์ ์ ์ธํ ํ๋กํผํฐ๊ฐ ๋จผ์ ์ ์ธํ ํ๋กํผํฐ๋ฅผ๋ฎ์ด์ด๋ค.
๋ฐฐ์ด๊ณผ๋ ๋ฌ๋ฆฌ ๊ฐ์ฒด๋ ํ๋กํผํฐ๋ฅผ ์ด๊ฑฐํ ๋์์๋ฅผ ๋ณด์ฅํ์ง ์๋๋ค.
์ผ๋ฐ์ ์ธ ๊ฐ์ฒด ์์ฑ๋ฐฉ์์ด๋ค. {} ๋ฅผ ์ฌ์ฉํ๋ฉฐ ํ๋กํผํฐ๊ฐ ์์ผ๋ฉด ๋น ๊ฐ์ฒด, ํ๋์ ํ๋กํผํฐ๋ฅผ ๊ธฐ์ ํ๋ฉด ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ ์๋ค.
var emptyObject = {};
console.log(typeof emptyObject); // object
var hyundai = {
model : 'avante',
color :'white',
introduce: function () { // <--- ๋ฉ์๋
console.log('Hi! I am ' + this.model);
}
};
console.log(typeof hyundai); // object
console.log(hyundai); // {model : 'avante', color : 'white', introduce: f}
hyundai.introduce(); // Hi~ I am avante
/*
์ฒด์ ํ๋กํผํฐ ๊ฐ์ ์ ๊ทผํ๋ ค๋ฉด
.(์ฉ) ๋๋ ['ํ๋กํผํฐ ์ด๋ฆ'](ex. hyundai['introduce'])
์ด์ฉํฉ๋๋ค.
/*
์์ฑ์ ํจ์๋ new ํค์๋์ ํจ๊ป ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ์ด๊ธฐํ ํ๋ ํจ์์ด๋ค. ์์ฑ์ ํจ์๋ฅผ ํตํด ์์ฑ๋ ๊ฐ์ฒด๋ฅผ ์ธ์คํด์ค๋ผ ํฉ๋๋ค.
๊ฐ์ฒด๊ฐ ์์ ํ๊ณ ์์ง ์์ ํ๋กํผํฐ ํค์ ๊ฐ์ ํ ๋นํ๋ฉด ํด๋น ๊ฐ์ฒด์ ํ๋กํผํฐ๋ฅผ ์ถ๊ฐํ๊ณ ๊ฐ์ ํ ๋นํฉ๋๋ค.
์ด๋ฏธ ์กด์ฌํ๋ ํ๋กํผํฐ ํค์ ์๋ก์ด ๊ฐ์ ํ ๋นํ๋ฉด ํ๋กํผํฐ ๊ฐ์ ํ ๋นํ ๊ฐ์ผ๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค.
// ๋น ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ ์๋ค.
var kia = new Object();
// ํ๋กํผํฐ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
kia.model = 'sorrento';
kia.color = 'red';
kia.introduce = function () {
console.log('Hi! I am ' + this name);
};
`console.log`๋ฅผ ์ด์ฉํ์ฌ kia์ ํ์
์ ์ถ๋ ฅํด ๋ณด์๊ธฐ๋ฐ๋๋๋ค.
`console.log`๋ฅผ ์ด์ฉํ์ฌ kia ๋ฅผ ์ถ๋ ฅํด๋ณด์๊ธฐ ๋ฐ๋๋๋ค.
`kia`์ `introduce`๋ฅผ ์ถ๋ ฅํด๋ณด์๊ธฐ ๋ฐ๋๋๋ค.
์์ฑ์ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํ๋กํผํฐ๊ฐ ๋์ผํ ๊ฐ์ฒด๋ฅผ ์ฌ๋ฌ๊ฐ๋ฅผ ๊ฐํธํ ์์ฑํ ์ ์๋ค.
//์์ฑ์ ํจ์
function Car(name, color) {
this.name = name;
this.color = color;
this.introduce = function() {
console.log('Hi! My name is ' + this.name);
};
}
//์ธ์คํด์ค์ ์์ฑ
var hyundai = new Car('avante', 'white');
var kia = new Car('sorrento', 'red');
/*
์ฌ๊ธฐ์ new Car์ ์ดํด๋
hyundai ๋ง ์ฌ์ฉํ ์ ์๋ ์๋ก์ด ๊ณต๊ฐ์ Carํจ์๋ฅผ ๊ฐ์ง๊ณ ์์ ์ด๋ค๊ณ ์ ๋ ์ดํดํ์์ต๋๋ค.
๊ทธ๋์ hyundai ๋ฅผ ํธ์ถํ๋ฉด avante๊ฐ ๋์ค๊ณ white๊ฐ ๋ถ๋ฆฝ๋๋ค.
*/
console.log('hyundai: ', hyundai);
console.log('kia: ', kia);
hyundai.introduce();
kia.introduce();
PoiemaWeb object์ ๋ ๊น๊ฒ ๋ณด๋ ค๋ ๋ถ์ ์ฌ๊ธฐํด๋ฆญ