JavaScript调试器关键字和范围问题

时间:2014-07-05 06:11:23

标签: javascript google-chrome debugging

我在Chrome 35上使用调试器关键字时发现了一些奇怪的行为(请参阅下面的代码段或JSFiddle):

function Person (settings) {
    // ....
    settings.init();
}


var anchors = document.querySelector('a');
var bob = new Person({
    init: function () {
        debugger;
    }
});

我注意到在调试器断点上检查控制台中'anchors'的值是返回一个ReferenceError,指出没有定义锚点。但是,当我检查此代码段(JSFiddle)的调试器断点上的锚点时:

function Person (settings) {
    // ....
    settings.init();
}


var anchors = document.querySelector('a');
var bob = new Person({
    init: function () {
        debugger;
        console.dir(anchors);
    }
});

锚点返回null,这是document.querySelector返回的合理值。锚点肯定存在于匿名函数的范围内。这是Chrome中的错误还是预期的行为?

0 个答案:

没有答案