1.1. Object Literal - MrKwon/node.js GitHub Wiki

κ°μ²΄λŠ” new Object(), Object.create(), Object Initializer 둜 μ΄ˆκΈ°ν™” 될 수 μžˆλ‹€. Object Initializer λ₯Ό 객체 λ¦¬ν„°λŸ΄(Object Literal) 이라고 ν•˜λŠ”λ°, μ΄λŠ” 객체의 μ΄ˆκΈ°ν™”λ₯Ό 0개 μ΄μƒμ˜ 속성λͺ…(property names) κ³Ό 객체의 μ—°κ΄€λœ κ°’(associated values)λ“€μ˜ 짝으둜 이루어진 리슀트λ₯Ό 콀마(,)둜 κ΅¬λΆ„ν•˜μ—¬ μ€‘κ΄„ν˜Έ{} μ•ˆμ— λ„£μ–΄ μ΄ˆκΈ°ν™”ν•˜λŠ” 방법이닀.

const b = 1;
const propertyName = 'c';

const ObjectLiteral01 = {
    a: 0,
    b: b,
    [propertyName]: 2,
};

ES2015+ μ—λŠ” μœ„μ˜ 객체 λ¦¬ν„°λŸ΄μ— νŽΈλ¦¬ν•œ κΈ°λŠ₯듀이 μΆ”κ°€λ˜μ—ˆλŠ”λ°, β‘  객체의 λ©”μ„œλ“œμ— ν•¨μˆ˜λ₯Ό μ—°κ²°ν•  λ•Œ, 콜둠(:)κ³Ό = function을 뢙이지 μ•Šμ•„λ„ λœλ‹€. β‘‘ 속성λͺ…κ³Ό λ³€μˆ˜λͺ…이 κ²ΉμΉ˜λŠ” κ²½μš°μ—λŠ” ν•œ 번만 써도 λœλ‹€. ex) μœ„μ˜ ObjectLiteral01 μ—μ„œ b: b, λ₯Ό b, 둜 λŒ€μ²΄ν•΄λ„ κ°™λ‹€. β‘’ 객체의 속성λͺ…을 λ™μ μœΌλ‘œ 생성할 수 있음 ex) μœ„μ˜ ObjectLiteral01 μ—μ„œ [propertyName] 은 c둜 동적 μƒμ„±λœλ‹€. 기쑴의 문법과 λΉ„κ΅ν•˜κΈ° μœ„ν•œ μƒˆλ‘œμš΄ μ½”λ“œλ₯Ό μž‘μ„±ν•˜λ©΄

  1. κΈ°μ‘΄
var helloNode = function() {
    console.log('Hello Node');
};
var js = 'JS';
var object = {
    helloJS = function() {
         console.log('Hello JS');
    },
    helloNode: helloNode,
};
object[js + '_old'] = 'old is getting better to new';
  1. ES2015+ 적용
const helloNode = function() {
    console.log('Hello Node');
};
const js = 'JS';
const object = {
    helloJS() {
        console.log('Hello JS');
    },
    helloNode,
    [js + '_old']:  'old is getting better to new',
};
object.helloJS();     // Hello JS
object.helloNode();   // Hello Node
console.log(object.JS_old);    //  old is getting better to new