实例对象使用属性和方法的规则:
- 先在实例中查找,如果有则使用自身的属性和方法
- 如果没有,再去实例对象的 proto 指向的原型对象prototype中查找,找到则使用,
- 如果找不到,则继续通过实例对象的 proto 进行查找,直到未找到报错
实例对象使用属性和方法层层的搜索,举例说明:
function Person(name,sex){
this.name = name;
this.sex = sex;
// this.eat = function(){
// console.log("构造函数中的吃");
// }
}
Person.prototype.sex = "男";
Person.prototype.eat = function(){
console.log("原型对象中的吃");
}
var stu = new Person("小明","男");
console.dir(stu.sex);//实例对象中的属性和方法,现在实例对象中查找
stu.eat();//原型对象中的吃 实例对象中找不到的时候,再去原型对象中查找