我在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中的错误还是预期的行为?