Skraćena notacija za dodeljivanja promenjive
Poznato je da je moguće na osnovu promenjive i njene vrednosti, napraviti svojstva nekog objekta, postupak koji se koristio je bio sledeći:
1 2 3 4 5 6 7 8 9 10 |
var a = 'foo', b = 42, c = {}; var objekat = { a: a, b: b, c: c }; // objekat.a vraća 'foo' .... |
Sada sa novim standardom možemo ovo da skratimo:
1 2 3 4 5 6 7 8 9 |
var a = 'foo', b = 42, c = {}; var objekat = { a, b, c }; |
Skraćena notacija definisanja metoda
Za definisanje metode objekta nije više potrebna ključna reč function i dvotačka. Tako da sada umesto:
1 2 3 4 5 6 |
osoba= { ime: "Pera", stampajIme: function() { console.log(this.ime); } } |
možemo da koristimo skraćenu notaciju:
1 2 3 4 5 6 |
osoba= { ime: "Pera", stampajIme() { console.log(this.ime); } } |
Dozvoljeno korišćenje computed svojstva
Sa novim standardom je dozvoljeno da se za svojstva koriste computed values:
1 2 3 4 5 6 7 8 9 10 |
var i = 0; var a = { ['foo' + ++i]: i, ['foo' + ++i]: i, ['foo' + ++i]: i }; console.log(a.foo1); // 1 console.log(a.foo2); // 2 console.log(a.foo3); // 3 |
Pa čak i:
1 2 3 4 5 6 |
var param = "size"; var config = { ['mobile' + param.charAt(0).toUpperCase() + param.slice(1)]: 4 }; console.log(config); // Vraća {mobileSize: 4} |
Duplirana svojstva nisu više error
Pre standarda ES2015 je kompajler vraćao grešku ukoliko se duplira svojstvo objekata, sa novim standardom je to sada moguće:
1 2 3 |
var a = { x: 1, x: 2}; console.log(a.x); // Vraća poslednju vrednost a to je broj 2 |