Chapter 10: ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด (Object literal upgrades)

๐Ÿ’ก ๋„์„œ ๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•ต์‹ฌ ๊ฐ€์ด๋“œ๋ฅผ ์ฝ๊ณ  ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

10.1 ๋ณ€์ˆ˜๋ฅผ ํ‚ค์™€ ๊ฐ’์œผ๋กœ ํ•˜๋Š” ๊ฐ์ฒด ๋งŒ๋“ค๊ธฐ


๊ฐ์ฒด์˜ key์™€ value๊ฐ€ ๋™์ผํ•  ๊ฒฝ์šฐ, value ๊ฐ’์„ ์ƒ๋žตํ•˜์—ฌ ํ‘œํ˜„ ๊ฐ€๋Šฅ

const name = "Alberto";
const surname = "Montalesi";
const age = 25;
const nationality = "Italian";

const person = {
  name,
  surname,
  age,
  nationality,
};
console.log(person);
// {name: "Alberto", surname: "Montalesi", age: 25, nationality: "Italian"}

10.2 ๊ฐ์ฒด์— ํ•จ์ˆ˜ ์ถ”๊ฐ€ํ•˜๊ธฐ


์ผ๋ฐ˜ ํ•จ์ˆ˜

// ES5
const person = {
  name: "Alberto",
  greet: function () {
    console.log("Hello");
  },
};

// ES6
const person = {
  name: "Alberto",
  greet() {
    console.log("Hello");
  },
};

person.greet(); // hello

ํ™”์‚ดํ‘œ ํ•จ์ˆ˜

Arrow function์€ ์ต๋ช… ํ•จ์ˆ˜์ด๋ฏ€๋กœ ํ•จ์ˆ˜์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ํ‚ค๊ฐ€ ํ•„์š”ํ•จ

// ์ž˜๋ชป๋œ ์˜ˆ
const person1 = {
  () => console.log("Hello"),
};
// Uncaught SyntaxError: Unexpected token '('

// ์˜ฌ๋ฐ”๋ฅธ ์˜ˆ
const person2 = {
  greet: () => console.log("Hello"),
}
person2.greet()
// Hello

10.3 ๊ฐ์ฒด์˜ ์†์„ฑ์„ ๋™์ ์œผ๋กœ ์ •์˜ํ•˜๊ธฐ


// ES5
var name = "myname";
// create empty object
var person = {};
// update the object
person[name] = "Alberto";
console.log(person.myname);
// Alberto

// ES6
const name = "myname";
const person = {
  [name]: "Alberto",
};
console.log(person.myname);
// Alberto