Javascript new Array()返回对象类型

时间:2015-04-30 21:27:57

标签: javascript arrays angularjs

from collections import deque

s = 'I Me You'
s_deq = deque(s.split())
s_deq.rotate(1)
print ' '.join(s_deq)
#OUT: You I Me

这实际上是angularJS,但是我正在初始化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 = []; } }; }); ,当我cart = new Array();时它会记录对象。并且console.log(typeof(cart));因错误而失败,因为它是object类型。

知道如何获得它的实际数组吗?

1 个答案:

答案 0 :(得分:2)

  

cart.push因错误而失败,因为它是object类型。

那不是真的。在JavaScript typeof [] === typeof new Array() === 'object'

typeof operator MDN

您的代码必须因其他原因而失败。

编辑:

  

错误:undefined不是一个函数(评估' cart.push(product)')是确切的错误。

这可能意味着你已经覆盖了变量cart,而且它不再是一个数组。

setCart: function(c) { cart = c; ...

这可能是罪魁祸首吗?