通过构造函数创建的对象称为实例对象,实例对象中的属性和方法称为实例成员

    1. <script>
    2. // 构造函数
    3. function Person() {
    4. // 构造函数内部的 this 就是实例对象
    5. // 实例对象中动态添加属性
    6. this.name = '小明';
    7. // 实例对象动态添加方法
    8. this.sayHi = function () {
    9. console.log('大家好~');
    10. }
    11. }
    12. // 实例化,p1 是实例对象
    13. // p1 实际就是 构造函数内部的 this
    14. let p1 = new Person();
    15. console.log(p1);
    16. console.log(p1.name); // 访问实例属性
    17. p1.sayHi(); // 调用实例方法
    18. </script>

    课堂代码:

    1. function Person(u, a) {
    2. // 每个对象通用的属性、方法,可以放到构造函数里面;
    3. // 使用 ”this.属性 = 值” 这样的语法,为对象添加通用的属性
    4. // 构造函数中的 this 表示创建的实例对象,即 obj1 或 obj2
    5. this.uname = u
    6. this.age = a
    7. this.say = function () {
    8. console.log('哈哈哈')
    9. }
    10. }
    11. // 通过new 构造函数得到的对象,叫做实例对象
    12. let obj1 = new Person('老段', 80)
    13. console.log(obj1)
    14. let obj2 = new Person('大飞哥', 50)
    15. console.log(obj2)

    总结:

    1. 构造函数内部 this 实际上就是实例对象,为其动态添加的属性和方法即为实例成员
    2. 为构造函数传入参数,动态创建结构相同但值不同的对象
    3. 实例对象的 constructor 属性指向了构造函数(后面讲)
    4. instanceof 用于检测实例对象对应的构造函数(后面讲)

    注:构造函数创建的实例对象彼此独立互不影响。