“Object literal” poboljšanja

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:

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:

var a = 'foo',
    b = 42,
    c = {};

var objekat = {
  a,
  b,
  c
};

ES2015

Skraćena notacija definisanja metoda

Za definisanje metode objekta nije više potrebna ključna reč function i dvotačka. Tako da sada umesto:

osoba= {
 ime: "Pera",
 stampajIme: function() {
   console.log(this.ime);
 }
}

možemo da koristimo skraćenu notaciju:

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:

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:

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:

var a = { x: 1, x: 2};

console.log(a.x); // Vraća poslednju vrednost a to je broj 2