原型:
1.prototype
每一个函数都有一个prototype属性,称之为显示原型。
2.__proto__
每个实例对象都有一个__proto__,称为隐式原型。这个对象的__proto__指向构造函数的显示原型。
//创建一个构造函数,表示一个类
function Person(name,age){
this.name=name;
this.age=age;
}
Person.prototype.color="yellow";
//实例对象
let one=new Person('张三',18);
let two=new Person('李四',20);
console.log(one,two)
console.log(one.__proto__==Person.prototype) //true
3.constructor
每个显示原型prototype都有constructor属性,constructor指向构造函数本身。
console.log(Person.prototype.constructor==Person) //true
原型链:
获取对象属性时,如果对象本身没有这个属性,那就会去他的原型_ _proto_ _上去找,如果还查不到,就去找原型的原型,一直找到最顶层(Object.prototype)为止。Object.prototype对象也有_ _proto_ _属性值为null。