ES6 introduced two new features to make objects more concise - Shorthand Properties and Shorthand Method Names.

Shorthand Properties

With Shorthand Properties, whenever you have a variable which is the same name as a property on an object, when constructing the object, you can omit the property name.

What that means is that code that used to look like this,

function formatMessage (name, id, avatar) {
return {
name: name,
id: id,
avatar: avatar,
timestamp: Date.now()
}
}

can now look like this.

function formatMessage (name, id, avatar) {
return {
name,
id,
avatar,
timestamp: Date.now()
}
}

Shorthand Method Names

Now, what if one of those properties was a function?

A function that is a property on an object is called a method. With ES6's Shorthand Method Names, you can omit the function keyword completely. What that means is that code that used to look like this,

function formatMessage (name, id, avatar) {
return {
name,
id,
avatar,
timestamp: Date.now(),
save: function () {
// save message
}
}
}

can now look like this

function formatMessage (name, id, avatar) {
return {
name,
id,
avatar,
timestamp: Date.now(),
save () {
//save message
}
}
}

Both Shorthand Properties and Shorthand Method Names are just syntactic sugar over the previous ways we used to add properties to an object. However, because they're such common tasks, even the smallest improvements eventually add up.