1. 当我们在创建一个对象的时候,一般一个类不可能只创建一个对象

    image.png
    //上面创建了四个对象,但问题是四个对象的属性都一模一样,这样就没有意义,
    //我们希望的是每个创建的对象都是不同的
    所以一般我们不在类里面给实例属性直接指定值,我们只要指定实例属性类型就行,但这样实例对象就是空的
    但属性又不能在类里面指定,因为一旦在类里面指定了,所有对象都是这个值;也不能不给属性赋值,这样就会导致实例对象是空的,没有属性值


    2.所以我们应该是在创建实例对象的时候再给属性赋值,这时候就要用到构造函数:会在对象创建时调用,当用到new 一个对象的时候实际上就是在调用constructor构造函数。可认为调用new Dog()实际上就等于调用constructor
    image.png//也就是new的时候constructor立即被执行


    3.在函数/方法里面,有个东西叫this,this在实例方法中,this表示当前的实例
    在构造函数中当前对象就是当前新建的那个对象
    如上图,new Dog()等于dog,调用构造函数,而构造函数里面的this就表示dog,
    同理如果new Dog()等于dog2,那么this就表示dog2
    实例对象是谁,this就指向谁,指向当前实例


    4.可以通过this(在constructor构建函数)向新建的对象中添加属性
    image.png//红色下划线,是提示这两个属性(name、age)在类当中没有定义
    image.png//所以要提前在类里面定义,然后在构造函数里赋值


    5.this指向
    image.png//通过dog调用bark函数,那么this就是指向dog
    在方法中可以通过this来表示当前调用方法的对象
    以上指的都是实例方法的this,