变量范围与铬断点

时间:2013-03-19 16:55:39

标签: javascript google-chrome d3.js google-chrome-devtools

在使用JavaScript应用程序时,我在使用Chrome开发人员工具时遇到了意外情况。我在一个函数中有以下代码块:

var b = bins + 1,
    selectValues = [],
    selectedPoints = [],
    n = numVals;

    while(b--){selectValues.push(0)};


    //Main selection iterator
    if (range_min == range_max){
        mainSVG.selectAll(".sim-ui-scatter-points")
            .each(function(){
                d3.select(this).call(addClass,["foo"]);
                d3.select(this).call(removeClass,["bar","foobar"])  
                });
        } else {
            do some other stuff
        });
    }

计划在n语句中为每个项目添加变量.each添加一些功能,我使用Chrome调试器在.each语句中放置一个断点,并且然后在浏览器暂停断点时在控制台中询问n,然后返回ReferenceError: n is not defined。但是,如果在我的代码中添加console.log(n),则如下所示:

    //Main selection iterator
    if (range_min == range_max){
        mainSVG.selectAll(".sim-ui-scatter-points")
            .each(function(){
                console.log(n)
                d3.select(this).call(addClass,["foo"]);
                d3.select(this).call(removeClass,["bar","foobar"])  
                });
        } else {
            do some other stuff
        });
    }

代码不仅正确地将n返回到控制台,而且我可以在我的控制台中使用Chrome调试器中的n,在我之前使用的同一行上使用断点获取正确的值而不是引用错误。为什么会这样?

0 个答案:

没有答案