本文已参与 「新人创作礼」活动, 一起开启掘金创作之路。
/*
三者之间的关系: 构造函数 原型对象 实例对象
prototype: 属于构造函数, 指向原型对象
原型对象就是用来解决变量污染, 资源浪费
__proto__: 属于示例对象, 指向原型对象
作用就是: 实例对象访问原型对象的成员
constructor: 属于原型对象, 指向构造函数
作用: 验证实例对象的父亲
*/
// 1. 构造函数
function Person(name, age) {
this.name = name
this.age = age
}
// 2. 原型对象
Person.prototype.aet = function () {
console.log('原型对象');
}
// 实例对象
let p1 = new Person('小顾', 18)
console.log(p1);
// 检测三者之间的关系
console.log(p1.__proto__.constructor === Person); // true 确认(它爹是它爹)
console.log(p1.__proto__ === Person.prototype); // true 确认(它妈是它妈)