__proto__这个属性一般不要修改,也就是不要赋值,但是constructorprototype可以修改,比如原型的
继承里面的组合继承,这里就修改了相应的prototypeconstructor
function Person(age) {
        this.age = age || 18;
      }
      Person.prototype.sleep = function () {
        console.log("sleeping");
      };
function Programmer(age, name) {
        Person.call(this, age);
        this.name = name;
      }
let jon = new Programmer(18, 'jon')
Programmer.prototype.constructor   //原型的构造函数是他自己  function Programmer(age,name){}
Programmer.prototype = new Person();   //如果在new Programmer(18, 'join')前加上这句,那么他的Programmer.prototype.constructor则是function Person(age){},所以如果用组合继承,那就得将Programmer.prototype.constructor重新指回function Programmer(age,name){}