JavaScript缺少自变量的上下文

JavaScript缺少自变量的上下文,javascript,Javascript,下面是JavaScript的神秘行为。这是我的使用错误还是一些错误 JavaScript代码 function test(){ var self = this; self.func1 = function(){ debugger; // here self == Window } debugger; //here self == test func self.func1(); } var t = new test(); 我提供了JSFIDLE,您可以自己尝试

下面是JavaScript的神秘行为。这是我的使用错误还是一些错误

JavaScript代码

function test(){

  var self = this;

  self.func1 = function(){
    debugger; // here self == Window
  }
  debugger; //here self == test func
  self.func1(); 
}

var t = new test();
我提供了JSFIDLE,您可以自己尝试:


有人能解释一下为什么调用后会遗漏自变量的上下文吗

这不是bug,您只是看错了调试器

JS引擎注意到函数
func1
没有使用变量
self
,因此需要对其进行优化测量。您在调试器中看到的是

如果您在函数中使用
self
变量,例如
console.log(self)
,您还会在调试器的关闭列表中看到它。看