1. 当访问一个对象的属性时,首先查找这个对象自身有没有该属性。
function Star(name,age) {
this.name = name;
this.age = age;
}
let star = new Star('卓越',22);
Star.sex = '男';
//可以直接查找到sex。
console.log(Star.sex);
2. 如果没有查找到就去找他的原型,也就是__proto__指向的prototype原型对象。
function Star(name,age) {
this.name = name;
this.age = age;
}
Star.prototype.sex = '女';
let zy = new Star('卓越',22);
console.log(zy.sex);// 女
3. 如果还是没有,就去查找原型对象的原型(Object的原型对象)。
function Star(name,age) {
this.name = name;
this.age = age;
}
Star.prototype.sex = '女';
Object.prototype.height = 123;
let zy = new Star('卓越',22);
console.log(zy.sex);// 女
console.log(zy.height);// 123
4.以此类推一直找到Object为止。
function Star(name,age) {
this.name = name;
this.age = age;
}
Star.prototype.sex = '女';
Object.prototype.height = 123;
let zy = new Star('卓越',22);
console.log(zy.sex);// 女
console.log(zy.weight);// null