1.原型对象:任何函数创建的时候,系统会自动创建与之对应的对象,称之为原型对象
2.原型对象的作用:解决构造函数 内存浪费+变量污染
3.构造函数,原型对象,实例对象三者之间的关系
- prototype:属于构造函数,指向原型对象
- *解决构造函数内存浪费+变量污染
- __proto__:属于实例对象,指向原型对象
- *让实例对象直接访问原型的成员
- constructor:属于原型对象,指向构造函数
- *可以让实例对象知道自己是被哪个构造函数创建的
//1.构造函数
function createP (name, age, sex) {
this.name = name
this.age = age
this.sex = sex
}
//2.原型对象
console.log(createP.prototype);
//给原型对象添加方法
createP.prototype.eat = function () {
console.log('吃东西')
}
createP.prototype.learn = function () {
console.log('学习')
}
//3.实例对象
let p1 = new createP('张三', 20, '男')
let p2 = new createP('李四', 22, '男')
// console.log(p1, p2);
//实例对象可以直接调用原型对象里的方法
p1.eat()
p2.learn()