κ°μ²΄ 리ν°λ΄
- μλ³μ λ€μ΄λ° κ·μΉμ λ°λ₯΄μ§ μλ μ΄λ¦μλ λ°λμ λ°μ΄νλ₯Ό μ¬μ©ν΄μΌ νλ€.
var person = {
firstName: 'Ung-mo', // μλ³μ λ€μ΄λ° κ·μΉμ μ€μνλ νλ‘νΌν° ν€
'last-name': 'Lee' // μλ³μ λ€μ΄λ° κ·μΉμ μ€μνμ§ μλ νλ‘νΌν° ν€
}
console.log(person) // { firstName: 'Ung-mo', last-name: 'Lee' }
var person = {
firstName: 'Ung-mo',
last-name: 'Lee' // SyntaxError: Unexpected token -
}
- λ¬Έμμ΄ λλ λ¬Έμμ΄λ‘ νκ°ν μ μλ ννμμ μ¬μ©ν΄ νλ‘νΌν° ν€λ₯Ό λμ μΌλ‘ μμ±ν μλ μλ κ²½μ°μλ νλ‘νΌν° ν€λ‘ μ¬μ©ν ννμμ λκ΄νΈ([...])λ‘ λ¬Άμ΄μΌ νλ€.
- But. ν€λ‘μμ μλ―Έλ₯Ό κ°μ§ λͺ»νλ―λ‘ κΆμ₯νμ§ μμ.
var obj = {};
var key = 'hello';
// ES5: νλ‘νΌν° ν€ λμ μμ±
obj[key] = 'world';
// ES6: κ³μ°λ νλ‘νΌν° μ΄λ¦
// var obj = {[key]: 'world'};
console.log(obj); // {hello: "world"}
- λ©μλ: νλ‘νΌν° κ°μ΄ ν¨μμΌ κ²½μ° μΌλ° ν¨μμ ꡬλΆνκΈ° μν΄ λ² μλλΌ λΆλ₯Έλ€.
- κ°μ²΄μ λ¬Άμ¬μλ ν¨μλ₯Ό μλ―Έ
var circle = {
radius: 5; // νλ‘νΌν°
// μμ μ§λ¦
getDiameter: function() { // λ©μλ
return 2 * this.radius; // thisλ circleμ κ°λ¦¬ν¨λ€.
}
};
console.log(circle.getDiameter()); // 10
- νλ‘νΌν° μ κ·Ό
var person = {
name: 'Lee'
};
// λ§μΉ¨ν νκΈ°λ²μ μν νλ‘νΌν° μ κ·Ό
console.log(person.name); // Lee
// λκ΄νΈ νκΈ°λ²μ μν νλ‘νΌν° μ κ·Ό
// λκ΄νΈ νλ‘νΌν° μ κ·Ό μ°μ°μ λ΄λΆμ μ§μ νλ νλ‘νΌν° ν€λ λ°λμ λ μ΄νλ‘ κ°μΌ λ¬Έμμ΄μ΄μ΄μΌ νλ€.
// λ°μ΄νλ‘ κ°μΈμ§ μμ μ΄λ¦μ νλ‘νΌν° ν€λ‘ μ¬μ©νλ©΄ μλ°μ€ν¬λ¦½νΈ μμ§μ μλ³μλ‘ ν΄μνλ€.
console.log(person['name']); // Lee
- νλ‘νΌν°ν€κ° μλ³μ λ€μ΄λ° κ·μΉμ μ€μνμ§ μλ μ΄λ¦, μ¦ μλ°μ€ν¬λ¦½νΈμμ μ¬μ© κ°λ₯ν μ΄λ¦μ΄ μλλ©΄ λ°λμ λκ΄νΈ νκΈ°λ²μ μ¬μ©ν΄μΌ νλ€.
var person = {
'last-name': 'Lee',
1: 10
};
person.'last-name'; // SyntaxError: Unexpected string
person.last-name; // λΈλΌμ°μ νκ²½: Nan
// Node.jsνκ²½: ReferenceError: name is not defined
person[last-name]; // ReferenceError: last is not defined
person['last-name']; // Lee
// νλ‘νΌν° ν€κ° μ«μλ‘ μ΄λ€μ§ λ¬Έμμ΄μΈ κ²½μ° λ°μ΄ν¬λ₯Ό μλ΅ν μ μλ€.
person.1; // SyntaxError: Unexpected number
person.'1'; // SyntaxError: Unexpected string
person[1]; // 10 : person[1] -> person['1']
person['1'] // 10
- νλ‘νΌν° λμ μμ± & μμ
// νλ‘νΌν° λμ μμ±
var person = {
name: 'Lee'
};
// personκ°μ²΄μλ age νλ‘νΌν°κ° μ‘΄μ¬νμ§ μλλ€.
// λ°λΌμ person κ°μ²΄μ age νλ‘νΌν°κ° λμ μΌλ‘ μμ±λκ³ κ°μ΄ ν λΉλλ€.
person.age = 20;
console.log(person); // {name: "Lee", age: 20}
// νλ‘νΌν° μμ
// personκ°μ²΄μ age νλ‘νΌν°κ° μ‘΄μ¬νλ€.
// λ°λΌμ delete μ°μ°μλ‘ age νλ‘νΌν°λ₯Ό μμ ν μ μλ€.
delete person.age;
// person κ°μ²΄μ address νλ‘νΌν°κ° μ‘΄μ¬νμ§ μλλ€.
// λ°λΌμ delete μ°μ°μλ‘ address νλ‘νΌν°λ₯Ό μμ ν μ μλ€. μ΄ λ μλ¬κ° λ°μνμ§ μλλ€.
delete person.address;
console.log(person); // {name: "Lee"}
- νλ‘νΌν° μΆμ½ νν
// ES5
var x = 1, y = 2;
var obj = {
x: x,
y: y
};
console.log(obj); // {x: 1, y: 2}
// ES6
let x = 1, y = 2;
const obj = {x, y};
console.log(obj); // {x: 1, y: 2}
// νλ‘νΌν° ν€λ λ³μ μ΄λ¦μΌλ‘ μλ μμ±λλ€.
- κ³μ°λ νλ‘νΌν° μ΄λ¦
// ES5
var prefix = 'prop';
var i = 0;
var obj = {};
// κ³μ°λ νλ‘νΌν° μ΄λ¦μΌλ‘ νλ‘νΌν° ν€ λμ μμ±
obj[prefix + '-' + ++i] = i;
obj[prefix + '-' + ++i] = i;
obj[prefix + '-' + ++i] = i;
console.log(obj); // {prop-1: 1. prop-2: 2, prop-3: 3}
// 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}
- λ©μλ μΆμ½ νν
// ES5
var obj = {
name: 'Lee',
sayHi: function() {
console.log('Hi! ' + this.name);
}
};
obj.sayHi(); // Hi! Lee
// ES6
const obj = {
name: 'Lee',
// λ©μλ μΆμ½ νν
sayHi() {
console.log('Hi! ' + this.name);
}
};
obj.sayHi(); // Hi! Lee
μ°Έκ³ μλ£: http://www.yes24.com/Product/Goods/92742567