范围中缺少一些JavaScript变量

时间:2014-06-05 16:01:12

标签: javascript scope closures

我遇到的问题是我试图访问我认为应该在范围内的变量,但事实并非如此。我正在使用Underscore.js循环遍历数组并在示例代码中添加_.forEach闭包内的值,我可以访问overviewRow数组但不能访问overview对象。为什么一个人在范围内,而另一个人不在?

function(pointsReport, itemsReport, receiptsReport){
                app.stores.done(function(stores) {
                    var overview = {
                        columns: [
                            "sales",
                            "items sold",
                            "coupons redeemed",
                            "points redeemed",
                            "cost for points"
                        ],
                        rows: []
                    };

                    var overviewRow = [
                        0,
                        0,
                        0,
                        0,
                        0
                    ];

                    _.forEach(itemsReport, function (item) {
                        overviewRow[0] += item.quantity * item.unitPrice;
                        overviewRow[1] += item.quantity;
                        //overview not in scope
                    });
                });
            };

1 个答案:

答案 0 :(得分:1)

问题在于Chrome。当单步执行该功能时,开发人员控制台无法访问该对象。但是,当我编写代码并再次执行时,对象就在范围内。

韦尔普。很高兴知道Chrome可以这样欺骗你。