Ниже приведено рабочее решение вашей проблемы:
function pizzaFactory(ing, pric, siz) {
let ingred = null;
let price = null;
let size = null;
if(typeof ing == "undefined" || typeof pric == "undefined" || typeof siz == "undefined") {
ingred = ["pepperoni", "cheese", "tomato sauce", "lots and lots and lots and lots and lots of love"];
price = 125;
size = "Small";
} else {
ingred = ing;
price = pric;
size = siz;
}
return {
ing: ingred,
pric: price,
siz: size,
deliver: function() {
console.log(`Pizza Ingredients: ${ingred}`);
console.log(`Price: ${price}`);
console.log(`Size: ${size}`);
}
};
}
Единственный фрагмент вашего кода, который нуждается в обновлении, следующий:
return {
ing: ingred,
pric: price,
siz: size,
deliver: function() {
console.log(`Pizza Ingredients: ${ingred}`);
console.log(`Price: ${price}`);
console.log(`Size: ${size}`);
}
};
Где необходимо обновить следующие операторы:
console.log(`Pizza Ingredients: ${ing}`);
К
console.log(`Pizza Ingredients: ${ingred}`);
Тогда
console.log(`Price: ${pric}`);
К
console.log(`Price: ${price}`);
Тогда
console.log(`Size: ${siz}`);
К
console.log(`Size: ${size}`);
Как вы на самом деле ссылались на ing
, pric
, siz
, которые являются аргументами функции, и должны быть undefined
, когда вы вызываете функцию pizzaFactory
без аргументов, таких как:
const pizza2 = pizzaFactory();
Надеюсь, это поможет.