ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ


์ด๋ฒˆ์— ๋‹ค๋ค„๋ณผ ์ฃผ์ œ๋Š” ๋ฒˆ์—ญํ•ด๋ณด๋ฉด ํ–ฅ์ƒ๋œ ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด(?) ์ด๋ ‡๊ฒŒ ๋ฒˆ์—ญ ๋  ๋“ฏ ํ•œ๋ฐ, ๊ฐ„๋‹จํžˆ ๋งํ•˜์ž๋ฉด ๊ฐ์ฒด๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ์— ์žˆ์–ด์„œ ์กฐ๊ธˆ ๋” ๊ฐ€๋…์„ฑ ์ข‹๊ณ  ์งง์€ ํ˜•ํƒœ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ๋” ํ•ด์ฃผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.


ํ”ํžˆ javascript๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋ฐ์ดํ„ฐํƒ€์ž… ์ข…๋ฅ˜๋ฅผ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š๋Š”๋ฐ ์‚ฌ์‹ค ์ด๋Ÿฌํ•œ new ์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•ด์„œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์‹œ์ž‘์„ ํ•ด์•ผํ•˜์ฃ  ์ด๋Ÿฐ ์‹์œผ๋กœ์š”

1
2
3
4
5
6
//์ˆซ์ž
var num = new Number();
//๋ฌธ์ž์—ด
var str = new String();
//๊ฐ์ฒด
var obj = new Object();
cs


๊ทธ์น˜๋งŒ ๋ณดํ†ต์€ ์ด๋ ‡๊ฒŒ new ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ๋ณ€์ˆ˜์— ๊ฐ’์„ ๋‹ด๋Š”๊ฒŒ ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค. 


1
2
3
4
5
6
//์ˆซ์ž
var num = 1
//๋ฌธ์ž์—ด
var str = "hello"
//๊ฐ์ฒด
var obj = {"key":"value"}
cs

์ด๋Ÿฐ ๋ฐฉ์‹์„ ์ง€์›ํ•˜๋Š” ๊ฒƒ์„ ๋ฆฌํ„ฐ๋Ÿด ํ‘œ๊ธฐ๋ฒ•์„ ์ง€์›ํ•œ๋‹ค๊ณ  ํ•˜๋Š”๋ฐ ๋ฌผ๋ก  ์ด๋Š” es6 ์ด์ „์—๋„ ์ง€์›๋˜๋˜ ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค. ์„œ๋‘์—์„œ ๋งํ•œ ๊ฒƒ์€ ๋” ํ–ฅ์ƒ๋œ ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด ์ด๋ผ๊ณ  ํ•˜์˜€์ฃ ?


๊ทธ๋Ÿผ ์–ด๋–ค์‹์œผ๋กœ ๋ฐ”๊ผˆ๋Š”์ง€ ์ฝ”๋“œ๋กœ ์ง์ ‘ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

(์ถœ์ฒ˜ : https://dev.to/sarah_chima/enhanced-object-literals-in-es6-a9d)

(https://poiemaweb.com/es6-enhanced-object-property)


[ํ”„๋กœํผํ‹ฐ ์ถ•์•ฝ ํ‘œํ˜„]

1
2
3
4
5
6
7
8
9
//ES5
function getLaptop(make, model, year) {
    return {
        make: make,
        model: model,
        year: year
     }
}
getLaptop("Apple""MacBook""2015");// {make: "Apple", model: "MacBook", year: "2015"}
cs


1
2
3
4
5
6
7
8
//ES6
function getLaptop(make, model, year) {
    return {
        make,
        model,
        year
    }
}
getLaptop("Apple""MacBook""2015"); // {make: "Apple", model: "MacBook", year: "2015"}
cs


์—„์ฒญ ํฐ ๋ณ€ํ™”๋Š” ์•„๋‹ˆ์ง€๋งŒ, ์ดˆ๊ธฐํ™” ํ•˜๋ ค๋Š” ๊ฐ์ฒด์˜ key์™€ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๋™์ผํ•œ ์ด๋ฆ„์ผ ์‹œ์— ํ•œ ๋ฒˆ๋งŒ ์จ์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. 




[ ๋ฉ”์†Œ๋“œ ์ถ•์•ฝ ํ‘œํ˜„ ]

1
2
3
4
5
6
7
8
9
//ES5
function getLaptop(make, model, year) {
    return {
        sayModel : function() {
            return model;
        }
    }
}
getLaptop("Apple""MacBook""2015").sayModel(); //"MacBook"
cs


1
2
3
4
5
6
7
8
9
//ES6
function getLaptop(make, model, year) {
    return{
        sayModel() {
            return model;
        }
    }
}
getLaptop("Apple""MacBook""2015").sayModel(); //"MacBook"
cs


๋‘˜ ๋‹ค ๊ฐ์ฒด๋ฅผ ๋ฆฌํ„ดํ•˜๊ณ  ์žˆ๋Š”๋ฐ ES5์—์„œ๋Š” key์™€ key value ๋ฅผ ์ผ์ผ์ด ์ •์˜ํ•ด์ฃผ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— function ์„ ์–ธ์ž๋ฅผ ์“ฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ES6์—์„œ๋Š” ๋ณด์‹œ๋ฉด ๊ธฐ์กด์— ์•Œ๊ณ ์žˆ๋˜ ๊ฐ์ฒด ํ‘œ๊ธฐ๋ฒ•๊ณผ๋Š” ๋‹ฌ๋ฆฌ key ๋’ค์— ๊ด„ํ˜ธ๋ฅผ ์“ฐ๋ฉด์„œ ๋ฐ”๋กœ ํ•จ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•ด๋ฒ„๋ฆฌ์ฃ .



ํ”„๋กœํผํ‹ฐ ํ‚ค ๋™์  ์ƒ์„ฑ ]

1
2
3
4
5
6
7
8
9
// ES5
var i = 0;
var obj = {};
 
obj[++i] = i;
obj[++i] = i;
obj[++i] = i;
 
console.log(obj); // {1: 1, 2: 2, 3: 3}


1
2
3
4
5
6
7
8
9
// ES6
let i = 0;
const obj = {
  [++i]: i,
  [++i]: i,
  [++i]: i
};
 
console.log(obj); // {1: 1, 2: 2, 3: 3}

cs


ES5์—์„œ๋Š” ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ ํ‚ค๋ฅผ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ, ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด ์™ธ๋ถ€์—์„œ ๋Œ€๊ด„ํ˜ธ ํ‘œ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•ด์•ผ ํ–ˆ๋Š”๋ฐ, ES6์—์„œ๋Š” ๊ฐ์ฒด ๋‚ด๋ถ€์—์„œ๋„ ๋Œ€๊ด„ํ˜ธ ํ‘œ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•ด ํ”„๋กœํผํ‹ฐ ํ‚ค๋ฅผ ๋™์ ์œผ๋กœ ์ƒ์„ฑ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.




[ __proto__ ํ”„๋กœํผํ‹ฐ์— ์˜ํ•œ ์ƒ์† ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// ES5
var parent = {
  name'parent',
  hello: function() {
    console.log('Hello! ' + this.name);
  }
};
 
// ํ”„๋กœํ† ํƒ€์ž… ํŒจํ„ด ์ƒ์†
var child = Object.create(parent);
child.name = 'child';
 
parent.hello(); // Hello! parent
child.hello();  // Hello! child

cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// ES6
var parent = {
  name'parent',
  hello() {
    console.log("Hello! "+this.name)
  }
};
 
// child ๊ฐ์ฒด์˜ ํ”„๋กœํ† ํƒ€์ž… ๊ฐ์ฒด์— parent ๊ฐ์ฒด๋ฅผ ๋ฐ”์ธ๋”ฉํ•˜์—ฌ ์ƒ์†์„ ๊ตฌํ˜„ํ•œ๋‹ค.
const child = {
    __proto__: parent,
    name'child'
};
parent.hello(); // Hello! parent
child.hello();  // Hello! child
cs

ES5์—์„œ๋Š” ๊ฐ์ฒด ์™ธ๋ถ€์—์„œ Object.create๋ฅผ ํ†ตํ•ด ์ƒ์†์„ ๊ตฌํ˜„ํ•˜๊ณ  ๋‚ด๋ถ€์˜ ํ”„๋กœํผํ‹ฐ ๋˜ํ•œ ์™ธ๋ถ€์—์„œ ๊ฐ’์„ ์„ค์ •ํ•ด์คฌ๋Š”๋ฐ, ES6์—์„œ๋Š” ์ƒ์†๋ฐ›๋Š” child ๊ฐ์ฒด ๋‚ด๋ถ€์—์„œ ์ƒ์†๊ด€๊ณ„์™€ ๋‚ด๋ถ€์˜ ํ”„๋กœํผํ‹ฐ ๊ฐ’ ๋˜ํ•œ ์„ค์ •์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋Œ“๊ธ€
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
ยซ   2024/11   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
๊ธ€ ๋ณด๊ด€ํ•จ