Я пытаюсь отобразить (записать) элементы, которые я добавил, используя функцию addItems (), когда я вызываю (записываю) функцию getItems () .. console.log (cart.addItem ("ITEMMSSS", 100, 10)) << выдает ShoppingCart {itemName: 'ITEMMSSS', количество: 100, цена: 10} <br>, как и ожидалось, но console.log (cart.getItems ()) выдает -1-
когда я console.log (this.addedItems) выходит из системы -undefined- (дважды)
Я не понимаю, почему у меня нет доступа к возвращенному значению из функции addItem ().
class ShoppingCart {
constructor(itemName, quantity, price) {
this.itemName = itemName
this.quantity = quantity
this.price = price
}
addItem(...items) {
const addedItems = new ShoppingCart(...items)
return addedItems
}
getItems(addedItems) {
const el = []
const selected = this.addedItems
const newArr = el.push(selected)
return newArr
}
clear(...item) {
// return items.slice(0, ...items).concat(items.slice(...items + 1))
}
clone(...items) {
// console.log(this)
// copiedCart.map((item) => {
// return item
// })
}
}
Исправлена проблема,
class ShoppingCart {
constructor(items) {
this.items = []
}
addItem(name, quantity, pricePerUnit) {
const shopCart = this.items.push({
name: name,
quantity: quantity,
pricePerUnit: pricePerUnit
})
return shopCart
}
getItems(...items) {
const displayItems = this.items
return displayItems
}
clear(...items) {
const emptyCart = this.items.length = []
return emptyCart
}
clone(...items) {
const copyCart = new ShoppingCart()
copyCart.items = JSON.parse(JSON.stringify(this.items))
return copyCart
}
}
//
// const cart1 = new ShoppingCart('banana', 12, 23)
// const cart2 = cart1.clone()
// //
// console.log(cart2)
// //
module.exports = ShoppingCart;
Но не получается получить неизменную копию shoppingCart <- исправлена проблема после прочтения о глубоком копировании </p>
clone(...items) {
const copyCart = new ShoppingCart()
copyCart.items = JSON.parse(JSON.stringify(this.items))
return copyCart
}