我正在尝试用 JS 实现一个简单的购物车。
$('.addToCart').click(function(event) {
event.preventDefault();
var name = $(this).data('name');
var price = Number($(this).data('price'));
cart.addProduct(name, price, 1);
});
这是我的购物车对象
var cart = (function () {
cartStorage = [];
function Product(name, price, count) {
this.name = name;
this.price = price;
this.count = count;
}
var object = {};
object.addProduct = function (name, price, count) {
for (var i in cartStorage) {
if (cartStorage[i].name == object.name) {
cartStorage[i].count++;
return;
}
}
var newItem = Product(name, price, count);
console.log(newItem);
cartStorage.push(newItem);
}
当我尝试控制台记录它时,它打印undefined。如果我再点击一个按钮,它会显示“无法读取属性‘名称’”。
这是我的典型元素卡 block
<div class="col-8 col-md-4 col-lg-3 card">
<img src="https://picsum.photos/200?random=9">
<div class="priceWrapper">
<input type="button" value="BUY" class = "addToCart" data-name = "Product #8" data-price = "0.001">
<p class="newPrice">0.001$ </p>
<p class="oldPrice"><strike>300$</strike></p>
</div>
<p class="item-name">Product #8 </p>
</div>
最佳答案
试试这个
var newItem = new Product(name, price, count);
使用关键字 new
从对象构造函数中获取新对象。
关于javascript - 无法读取未定义的属性 'name'。购物车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58620293/