this的指向

1.纯粹的作为函数调用:全局函数中,this指向window

        function a(){
        console.log(this);
        }
        a();

2.作为对象方法的调用:当函数被作为某个对象的方法调用时,this就是那个对象

        var name = '火影';
        var person2 = {
            name: '水影',
            sayName: function() {
            console.log(this.name);
             }
         };
    var sayNameWin = person2.sayName;
    person2.sayName(); //水影
    sayNameWin(); //火影   作为 window 的方法被调用的

3.作为构造函数调用:this指向新对象

        function Person3(name) {
        this.name = name;
        console.log(this);
        }
    var person3 = new Person3('张飒');
    console.log(person3.name);  //张飒

4.apply、call调用:this指向改变后的调用这个函数的对象

        var person4 = {
        name: '人才'
        };
        function fn() {
        console.log(this); //Object {name: "人才"}
        console.log(this.name); //人才
        }

        fn.apply(person4);