实例对象使用的属性或者方法,

  1. 先在实例中查找,找到了则直接使用
  2. 找不到则,去实例对象的__proto__指向的原型对象prototype中找
  3. 找到了则使用,找不到则报错

直接看一个小案例:
js实例对象使用属性和方法的搜索顺序_js技巧

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>title</title>
  <script>
    function Person(age,sex) {
      this.age=age;//年龄
      this.sex=sex;
      this.eat=function () {
        console.log("构造函数中的吃");
      };
    }
    Person.prototype.sex="女";
    Person.prototype.eat=function () {
      console.log("原型对象中的吃");
    };


    var per=new Person(20,"男");
    console.log(per.sex);//男
    per.eat();
    console.dir(per);


    /*
    * 实例对象使用的属性或者方法,先在实例中查找,找到了则直接使用,找不到则,去实例对象的__proto__指向的原型对象prototype中找,找到了则使用,找不到则报错
    *
    *
    * */

    function Animal(age) {
      this.age=age;//年龄
    }
    Animal.prototype.sex="女";
    Animal.prototype.eat=function () {
      console.log("原型对象中的吃");
    };


    var ani=new Animal(20);
    console.log(ani.sex);//女
    ani.eat();
    console.dir(ani);


  </script>
</head>
<body>


</body>
</html>