Контекст this в стрелочных функциях

Medium
thisarrow-functionscontextbindcall

Дан объект с информацией об автомобиле. Объясните, почему метод getName работает не так, как ожидается, и предложите решение.

const carDetails = {
    name: 'Ford Mustang',
    yearBought: 2005,
    getName: () => {
        return this.name;
    },
    isRegistered: true
}

Примеры

Пример 1
Вход:
carDetails.getName()
Выход:
Ford Mustang
Пример 2
Вход:
carDetails.getName.call({})
Выход:
undefined
Пример 3
Вход:
carDetails.getName.call({ name: 'Renault Logan' })
Выход:
Renault Logan
Ваш код - JavaScript
Результаты
Нажмите «Запуск» для выполнения кода