通过构造函数创建的对象称为实例对象,实例对象中的属性和方法称为实例成员。
<script>// 构造函数function Person() {// 构造函数内部的 this 就是实例对象// 实例对象中动态添加属性this.name = '小明';// 实例对象动态添加方法this.sayHi = function () {console.log('大家好~');}}// 实例化,p1 是实例对象// p1 实际就是 构造函数内部的 thislet p1 = new Person();console.log(p1);console.log(p1.name); // 访问实例属性p1.sayHi(); // 调用实例方法</script>
课堂代码:
function Person(u, a) {// 每个对象通用的属性、方法,可以放到构造函数里面;// 使用 ”this.属性 = 值” 这样的语法,为对象添加通用的属性// 构造函数中的 this 表示创建的实例对象,即 obj1 或 obj2this.uname = uthis.age = athis.say = function () {console.log('哈哈哈')}}// 通过new 构造函数得到的对象,叫做实例对象let obj1 = new Person('老段', 80)console.log(obj1)let obj2 = new Person('大飞哥', 50)console.log(obj2)
总结:
- 构造函数内部
this实际上就是实例对象,为其动态添加的属性和方法即为实例成员 - 为构造函数传入参数,动态创建结构相同但值不同的对象
- 实例对象的
constructor属性指向了构造函数(后面讲) instanceof用于检测实例对象对应的构造函数(后面讲)
注:构造函数创建的实例对象彼此独立互不影响。
