function Fn1(){
this.a = 1;
setTimeout(function(){
console.log(this)
},10)
};
var fn3 = new Fn1;
function Fn2(){
this.a = 1;
setTimeout( () => {
console.log(this)
},10)
};
var fn4 = new Fn2;
function foo(){
(() => {
console.log(this);
})();
}
foo();
先执行foo(),再执行fn3,再执行fn4,原因是因为setoutTime异步,拖延了fn3和fn4的执行。