原型中构造函数存在的问题
function Person(name.age,sex){
this.name = name
this.age = age
this.sex = sex
this.sub = function(){
console.log("1111")
}
}
let p = new Person("张三","10","男")
new Person("李四","16","男")
new Person("王武","20","男")
p.sub()
- 每创建一个对象都会形成一个新的函数,这样会导致资源的浪费
- 解决的方法是让所有实例对象可以调用,节省了空间
- 让构造函数通过原型分配函数,让所有实例对象共享
- JavaScript规定每一个构造函数必须有prototype属性
- 指向另一个对象(这个prototype就是一个对象)
- 这个对象的所有属性和方法都会被构造函数所拥有
- 我们可以把不变的方法,直接定义在构造函数的 .prototype
- 在这个对象中的所有实例对象都可以使用原型的方法
- 又因为每个实例对象都有__proto__属性,他们都指向构造函数的原型prototype
- 所有每个实例对象都可以访问原型中的属性和方法

function Person(name.age,sex){
this.name = name
this.age = age
this.sex = sex
}
Person.prototype.sub = function(){
console.log("2222")
}
let p = new Person("张三","10","男")
new Person("李四","16","男")
new Person("王武","20","男")
p.sub()
consloe.log(p.__proto__ === Person.prototype)