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