this指向调用这个方法的实例对象
    在浏览器中,直接定义一个方法,就是定义在window这个对象中,调用的其实是window.方法名(),但是由于在window环境下,所以window可以不用写;如果直接调用这个方法,this指向window

    1. <script>
    2. function test(){
    3. console.log(this)
    4. }
    5. test()
    6. //和window.test()一样
    7. </script>

    注:普通方法的this对象是window,new出来的方法this对象是这个对象

    1. <script>
    2. function test(name){
    3. console.log(this)
    4. }
    5. var f = test('哈哈') //window
    6. function Dog(name){
    7. this.name = name
    8. console.log(this)
    9. }
    10. var dog = new Dog("牧羊") //dog
    11. </script>
    1. <script>
    2. let dog = {
    3. name:'牧羊',
    4. say:function(){
    5. console.log('my name is' + this.name)
    6. }
    7. }
    8. dog.say() //this这个时候就是调用它的对象
    9. </script>