ECMAScript 6 ha introdotto una nuova sintassi per definire i metodi all'interno degli oggetti letterali.

In precedenza i metodi dovevano seguire la stessa sintassi delle altre proprietà.

'use strict';

const Product = {
    name: 'A product',
    price: 10.54,
    addVat: (value = 1.22) => {
        this.price = this.price * value;
    }
};

Con ECMAScript 6 la sintassi del metodo visto in precedenza viene semplificata in questo modo:

'use strict';

const Product = {
    name: 'A product',
    price: 10.54,
    addVat(value = 1.22) {
        this.price = this.price * value;
    }
};

Esempio d'uso:

const originalPrice = Product.price;

Product.addVat();

console.log(`
    Price before VAT: ${originalPrice}
    Price after VAT:  ${Product.price.toFixed(2)}
`);

Output:

$ node object-literals.js

Price before VAT: 10.54
Price after VAT:  12.86