It can do away with needing an explicit return statement, but that doesn’t mean it can’t have an explicit return statement.
In fact, if the first character after the arrow is an opening curly brace then you are required to have a return statement. That is why the createPerson function above needs a return statement.
But if the first character after the arrow is not an opening curly brace then you have an implicit return and it will just return the value of the expression after the arrow without needing a return statement.
So what if you want to use an implicit return to return an object? An object is created with opening/closing curly braces, so it seems like you could do:
const returnObj = (x, y) => {x, y};
But remember what I said above, if the first character after the arrow is an opening curly brace then you are required to have a return statement, so this won’t work. But there is a “hack” to fix this, you can wrap the object in parentheses so that the first character after the arrow is a parens instead of a left curly:
const returnObj = (x, y) => ({x, y});
That’s why the parentheses are there, to allow you to return an object using an implicit return with an arrow function.