一句话总结this的指向问题

this在有函数调用者时指向调用者否则指向GLOBAL,call、apply、bind除外。

    function test(){
        console.log(this);
    }    
    test();/ /Window
    var th = [);
    test.call(th)/th
    test.apply(th)//th
    test.bind(th)//th
    var a = function(){
    }
    a.test = test;
    a.test();//Function a
    a.prototype= {
        test : test
    }   
    var b = new a();
    b.test();//b;
    a.prototype.test()//a.prototye
    setTimeout(b.test, 100)//Window
    document.body.onclick = function(e){
        b.test();//b
        test()://Window
        console.log(this)//document.body
    }
    function callMethod(callback){
        callback();//Window
        arguments[0]();//arguments -> arguments.0()
    }
    callMethod(b.test);