app.factory('Shop', function() {
var price = 0;
var cart = new Array();
return {
totalPrice: function() { return price; },
setTotalPrice: function(newPrice) { price = newPrice; },
addToPrice: function(addedPrice) { price += addedPrice; },
getCart: function() { return cart; },
setCart: function(c) { cart = c; for (product in cart) { if (product.price) { addToPrice(product.price); } } },
addToCart: function(product) { console.log(typeof(cart)); cart.push(product); addToPrice(product.price); },
emptyCart: function() { cart = []; }
};
});
это на самом деле является angularJS, однако я инициализацией cart = new Array();
и когда я console.log(typeof(cart));
он записывает объект. а также cart.push
с ошибкой, потому что это объект типа.Javascript новый Array() возвращает тип объекта
Любая идея, как я могу получить на самом деле массив?
'var cart = [];' Добро пожаловать. –
@BrianDriscoll 'typeof [] == object' – Jonathan
' typeof' все в javascript является 'объектом'. То, что вы действительно хотите проверить, это 'instanceof' –