继承
js中的继承是通过原型实现的。
方式一:将原型指向继承对象的原型
function Animal(name) {
this.name =name;
}
Animal.prototype.age = 23;
let a = new Animal('lily');
function People(name) {
this.name = name
}
People.prototype = Animal.prototype;
let p1 = new People('张三');
console.log(p1.age)
p1.__proto__.age = 48;
console.log(a.age)
方式二: 指定原型对象为继承对象的一个实例
function Animal(name) {
this.name =name;
}
Animal.prototype.age = 23;
let a = new Animal('lily');
function People(name) {
this.name = name
}
People.prototype = new Animal('dog');
let p2 = new People('wangermazi');
p2.__proto__.age = 15;
console.log(a.age)
console.log(p2.age);
方式三:使用中转函数
function Animal(name) {
this.name =name;
}
Animal.prototype.age = 23;
let a = new Animal('lily');
function People(name) {
this.name = name
}
function fn() {};
fn.prototype = Animal.prototype;
People.prototype = new fn();
let p3 = new People('lisi');
p3.__proto__.age = 48
console.log(p3.age)
console.log(a.age)