Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript new Array()返回对象类型_Javascript_Arrays_Angularjs - Fatal编程技术网

Javascript new Array()返回对象类型

Javascript new Array()返回对象类型,javascript,arrays,angularjs,Javascript,Arrays,Angularjs,这实际上是angularJS,但是我正在初始化cart=new数组;当我安慰你的时候,我会说;它记录对象。而且cart.push也会失败并出现错误,因为它属于object类型 你知道我怎样才能得到一个数组吗 cart.push失败并出现错误,因为它属于object类型 那不是真的。在JavaScript中,typeof[]==typeof新数组===='object' 由于其他原因,您的代码必须失败 编辑: 错误:undefined不是一个函数,评估“cart.pushproduct”是准确的错

这实际上是angularJS,但是我正在初始化cart=new数组;当我安慰你的时候,我会说;它记录对象。而且cart.push也会失败并出现错误,因为它属于object类型

你知道我怎样才能得到一个数组吗

cart.push失败并出现错误,因为它属于object类型

那不是真的。在JavaScript中,typeof[]==typeof新数组===='object'

由于其他原因,您的代码必须失败

编辑:

错误:undefined不是一个函数,评估“cart.pushproduct”是准确的错误

这可能意味着您已经在某个地方覆盖了变量cart,它不再是数组

setCart:functionc{cart=c


这可能是罪魁祸首吗?

var-cart=[];不客气。@BrianDriscoll-typeof[]==objecttypeof javascript中的所有内容都是object。您真正要检查的是instanceofBtw,setCart和emptyCart都不会重置价格。您可能不想重置价格。@xCoder:cart.push失败,因为它是object类型。-您可以发布准确的错误消息吗?@xCoder我可以建议您阅读以下内容:.Chrome吗开发工具让你的生活更轻松。
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 = []; }
    };
});