javascript - 无法读取未定义的属性“名称”。购物车
问题描述
我正在尝试用 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 。如果我再单击一个按钮,它会显示“无法读取属性“名称”。
这是我典型的物品卡块
<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
。
推荐阅读
- google-cloud-platform - 在同一项目中验证 Google Pubsub 推送的 Cloud Functions URL
- excel - 根据持续时间拆分日期和行
- c# - 一个用户的 Cookie ID 从一个浏览器复制到另一个浏览器 - 它被劫持 - 如何解决这个问题
- cloud - 如何访问 IBM 云私有 CE 控制台管理?
- c# - 在 C# 和 SQL 中拆分表
- python - 根据数组中的条件选择数组数组?
- pytorch - PyTroch,梯度计算
- r - 逐行计算
- python - 如何在python中从pdf中提取表格数据?
- node.js - 在詹金斯工作中下载文件