setTimeout中所执行函数中的this,永远指向window

注意是要延迟执行的函数中的this哦!!

//片段一
setTimeout("alert(this)", 1);   // [object Window]

//片段二
var obj = {
  say: function() {
    setTimeout("alert('in obj ' + this)", 0)
  }
}
obj.say(); 

//片段三
var obj = {
  say: function() {
    setTimeout(function(){alert(this)}, 0)
  }
}
obj.say(); 

//片段四
function talk() {
  alert(this);
}
 
var obj = {
  say: function() {
    setTimeout(talk, 0)
  }
}
 
obj.say(); 
原文地址:https://www.cnblogs.com/linux-centos/p/5605351.html