原型链和原型对象
<script>
//创建一个构造函数,用来实例对象
function car (name,type){
this.name=name //私有属性
this.type=type //私有属性
}
//在car这个构造函数属性prototype原型对象中添加属性sex
car.prototype.sex="男" //此处prototype就是原型对像,我们在原型对象中添加一个sex属性,当然原型对象中也可以添加方法
let benci =new car('梅赛德斯','商务') //实例一个对象
console.log(benci.name); //(返回 梅赛德斯)
console.log(benci.sex); //(返回 男) 构造函数自身(也就是私有属性)中没有sex这个属性,会自动沿着prototype原型查找
console.log(benci); //返回一个空数组
//原型对象中有个属性叫constructor(这个属性包含了一个指针),用于指向构造函数
console.log(car.prototype.constructor);
//返回构造函数
// ƒ car (name,type){
// this.name=name
// this.type=type
// }
</script>
原型链
在 JavaScript 中,实例对象在读取属性时总是先检查私有属性。如果存在,则会返回私有属性值;否则就会检索 prototype 原型;如果找到同名属性,则返回 prototype(prototype) 原型的属性值。
proto(前后各两个下划线)是一个私有属性,可读可写,与 prototype 属性相同,都可以访问原型对象