this指向问题

js5的this:this指向函数运行时所在的执行环境的对象
 var obj = {
        a: f = function() {
            console.log(this);
            setTimeout(function() {
                console.log(this);
            }, 0);
        }
    }
    obj.a();
输出:
{a:f}
window
//a在局部环境里执行,指向当前对象,所以this指向obj
//setTimeout回调的代码都是在全局作用域环境中执行的,所以指向window
 
而换成:
 var b = obj.a;
  b();
输出:
window
window
//b这个时候相当于一个函数,而b是在全局环境下执行的,所以指向window
 
es6的this:es6没有自己的this,指向外层代码的this 
 
 
 
原文地址:https://www.cnblogs.com/putaopi/p/11642875.html