构造函数
构造函数中有实例变量和静态变量
- 实例变量:是在构造函数内,通过this添加的变量,实例变量只能通过实例化的对象来访问
- 静态变量:在构造函数本身上添加的成员,只能通过构造函数来访问
function Star (name, age) {
this.name = name
this.age = age
}
Star.sex = '女'
let stars = new Star('小乔', 18)
console.log(stars) // {name: '小乔', 'age: 18'} 访问不到静态变量
console.log(Star.sex) // 女
console.log(Star.name) // 访问不到实例变量
new 一个新对象发生了什么
- 1.创建了一个空对象{}
- 2.把空对象的原型链指向构造函数
- 3.重新绑定this,使构造函数的this指向新对象
- 4.为新对象属性,赋值构造函数的属性
- 5.返回this,此时新对象拥有了构造函数的方法和属性
需要了解的是直接在构造函数中定义的方法是不共享的,在原型上定义的方法共享