μλ°μ€ν¬λ¦½νΈλ κ°μ²΄ κΈ°λ°μ νλ‘κ·Έλλ° μΈμ΄μ΄λ©°, μμ κ°(
μ«μ
,λ¬Έμμ΄
,λΆλ¦¬μΈ
,undefined
,null
,μ¬λ²
)μ μ μΈν λλ¨Έμ§κ°(ν¨μ
,λ°°μ΄
,μ κ· ννμ
λ±)μ λͺ¨λ κ°μ²΄λ€.
μμνμ μ λ¨ νλμ κ°λ§ λνλ΄μ§λ§ κ°μ²΄ νμ μ λ€μν νμ μ κ°(μμ κ° λλ λ€λ₯Έ κ°μ²΄)μ νλμ λ¨μλ‘ κ΅¬μ±ν 볡ν©μ μΈ μλ£κ΅¬μ‘°λ€.
μμ κ°μ λ³κ²½ λΆκ°λ₯ν κ°μ΄μ§λ§ κ°μ²΄ νμ μ κ°μ λ³κ²½ κ°λ₯ν κ°μ΄λ€.
κ°μ²΄λ 0κ° μ΄μμ νλ‘νΌν°λ‘ ꡬμ±λ μ§ν©μ΄λ©°, νλ‘νΌν°λ ν€μ κ°μΌλ‘ ꡬμ±λμλ€. λν, μλ°μ€ν¬λ¦½νΈμμ μ¬μ©ν μ μλ λͺ¨λ κ°(μμκ°
κ°μ²΄κ°
)μ νλ‘νΌν° κ°μ΄ λ μ μλ€.
let person = {
name: "noh", // νλ‘νΌν°
gender: "male" // νλ‘νΌν°
// νλ‘νΌν° ν€ : name, gender
// νλ‘νΌν° κ° : "noh", "male"
}
βνλ‘νΌν° κ°μ΄ ν¨μμΌ κ²½μ°?
β μλ°μ€ν¬λ¦½νΈμμ ν¨μλ μΌκΈ κ°μ²΄μ΄λ―λ‘ κ°μΌλ‘ μ·¨κΈν μ μλ€. λ°λΌμ ν¨μλ νλ‘νΌν° κ°μΌλ‘ μ¬μ©κ°λ₯νλ° νλ‘νΌν° κ°μ΄ ν¨μμΌ κ²½μ° μΌλ°ν¨μμ ꡬλΆνκΈ° μν΄ λ©μλλΌ λΆλ₯Έλ€
νλ‘νΌν°
: κ°μ²΄μ μνλ₯Ό λνλλ κ°(data)
λ©μλ
: νλ‘νΌν°λ₯Ό μ°Έμ‘°νκ³ μ‘°μν μ μλ λμ
let counter = {
num: 0, // νλ‘νΌν°
increase : function () {
this.num++; // λ©μλ
};
μλ°μ€ν¬λ¦½νΈλ νλ‘ν νμ κΈ°λ° κ°μ²΄μ§ν₯ μΈμ΄λ‘μ λ€μν κ°μ²΄ μμ± λ°©λ²(
κ°μ²΄ 리ν°λ΄
,Object μμ±μ ν¨μ
,μμ±μ ν¨μ
,Object.create λ©μλ
,ν΄λμ€(ES6)
)μ μ§μνλ€.
μ€κ΄νΈ({})
λ΄μ 0κ° μ΄μμ νλ‘νΌν°λ₯Ό μ μ λ³μμ ν λΉλλ μμ μ μλ°μ€ν¬λ¦½νΈ μμ§μ κ°μ²΄ 리ν°λ΄μ ν΄μν΄ κ°μ²΄λ₯Ό μμ±νλ€.κ°μ²΄λ νλ‘νΌν°μ μ§ν©μ΄λ©°, νλ‘νΌν°λ ν€μ κ°μΌλ‘ ꡬμ±λλ€.
νλ‘νΌν° ν€
: λΉ λ¬Έμμ΄μ ν¬ν¨νλ λͺ¨λ λ¬Έμμ΄ λλ μ¬λ² κ°.
νλ‘νΌν° κ°
: μλ°μ€ν¬λ¦½νΈμμ μ¬μ©ν μ μλ λͺ¨λ κ°.
π‘ λ¬Έμμ΄ λλ λ¬Έμμ΄λ‘ νκ°ν μ μλ ννμμ μ¬μ©ν΄ νλ‘νΌν° ν€λ₯Ό λμ μΌλ‘ μμ±ν μ μλ€.
π‘ νλ‘νΌν° ν€λ‘ μ¬μ©ν ννμμ
λκ΄νΈ([])
λ‘ λ¬Άλλ€.
let obj = {}
let key = "hello"
obj[key] = "world"
cosole.log(obj) // {hello: "world"}
obj["key"] = "value"
cosole.log(obj) // {hello: "world", key: value}
νλ‘νΌν°μ μ κ·Όνλ λ°©λ²μ λ€μκ³Ό κ°μ΄ λ κ°μ§λ€.
λ§μΉ¨ν νκΈ°λ²
: λ§μΉ¨ν νλ‘νΌν° μ κ·Όμ°μ°μ.
λ₯Ό μ¬μ©
λκ΄νΈ νκΈ°λ²
: λκ΄νΈ νλ‘νΌν° μ κ·Όμ°μ°μ[]
λ₯Ό μ¬μ©
delete μ°μ°μλ κ°μ²΄μ νλ‘νΌν°λ₯Ό μμ νλ€. μ΄λ delete μ°μ°μμ νΌμ°μ°μλ νλ‘νΌν° κ°μ μ κ·Όν μ μλ ννμμ΄μ΄μΌ νλ€.
let person = {
name : "noh",
gender: "male"
};
delete person.gender;
delete person.age; // ageλ μ‘΄μ¬νμ§ μλ νλ‘νΌν° μμ ν μ μλ€(μ κ·Ό λΆκ°μ΄κΈ° λλ¬Έ)
console.log(person); // {name: "noh"}
let x = 1, y =2;
let obj = {
x:x, // νλ‘νΌν° ν€ μλ΅κ°λ₯.
y:y // νλ‘νΌν° ν€ μλ΅κ°λ₯.
};
console.log(obj); // {x:1, y:2}
// λ³μ μ΄λ¦(νλ‘νΌν° κ°)μ΄ νλ‘νΌν° ν€μ λμΌν μ΄λ¦μΌ λ νλ‘νΌν° ν€λ₯Ό μλ΅ κ°λ₯.
let x = 1, y =2;
const obj = {x,y};
console.log(obj); // {x:1, y:2}
ES5μμ κ³μ°λ νλ‘νΌν° μ΄λ¦μΌλ‘ νλ‘νΌν° ν€λ₯Ό λμ μμ±νλ €λ©΄ κ°μ²΄ 리ν°λ΄ μΈλΆμμ λκ΄νΈ([ ... ]) νκΈ°λ²μ μ¬μ©ν΄μΌ νλ€.
ES6μμλ κ°μ²΄ 리ν°λ΄ λ΄λΆμμλ κ³μ°λ νλ‘νΌν° μ΄λ¦μΌλ‘ νλ‘νΌν° ν€λ₯Ό λμ μμ±ν μ μλ€.
// ES5
var prefix1 = 'prop';
var i = 0;
var obj1 = {};
obj1[prefix1 + '-' + ++i] = i;
obj1[prefix1 + '-' + ++i] = i;
obj1[prefix1 + '-' + ++i] = i;
console.log(obj1); // {prop-1: 1, prop-2: 2, prop-3: 3}
// ES6
const prefix2 = 'prop';
let j = 0;
const obj2 = {
[`${prefix2}-${++j}`]: j,
[`${prefix2}-${++j}`]: j,
[`${prefix2}-${++j}`]: j
};
console.log(obj2); // {prop-1: 1, prop-2: 2, prop-3: 3}
// ES6μμλ λ©μλλ₯Ό μ μν λ function ν€μλλ₯Ό μλ΅ν μΆμ½ ννμ μ¬μ©ν μ μλ€.
// ES6
const obj = {
name: 'Kozel',
say() {
console.log('Hello, ' + this.name);
}
};
obj.say(); // Hello, Kozel