__proto__这个属性一般不要修改,也就是不要赋值,但是constructor和prototype可以修改,比如原型的
继承里面的组合继承,这里就修改了相应的prototype和constructor
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){}
浙公网安备 33010602011771号