Я выяснил, как заставить код работать правильно, определив отдельную локальную переменную для хранения возвращенного значения функции. Мне просто любопытно, почему использование $ {total} приводит к двум различным строкам на основе следующего кода.
Следующий код интерполирует тело функции в строку.
function placeOrder(cardNumber) {
if (typeof cardNumber === 'undefined') {
return "Sorry, we don't have a credit card on file for you."
} else {
let cartTotal = total();
cart = []
return `Your total cost is $${total}, which will be charged to the card ${cardNumber}.`
}
}
Следующий код вставляет возвращаемое значение функции total и использует это значение в строке, а также выдает ошибку типа, что total не является функцией
function placeOrder(cardNumber) {
if (typeof cardNumber === 'undefined') {
return "Sorry, we don't have a credit card on file for you."
} else {
total = total();
cart = []
return `Your total cost is $${total}, which will be charged to the card ${cardNumber}.`
}
}