***构造函数继承
属性继承:利用call()方法改变超类型构造函数this指向
// 属性继承
function Father(U_name, age, sex) {
this.U_name = U_name;
this.age = age;
this.sex = sex
console.log(this); // this指向Son
}
function Son(U_name, age, sex) {
Father.call(this, U_name, age, sex) //改变Father this指向
}
let son = new Son('张三', 18, 'sex')
console.log(son);
这时候我们看到打印结果:通过Son构造函数实力出来的对象已经拿到了Father构造函数里的属性
但是这种方式也有一个缺点 就是继承不了超类型构造函数里边的方法;
function Father(U_name, age, sex) {
this.U_name = U_name;
this.age = age;
this.sex = sex
}
Father.prototype.sing = function() {
console.log('lalalala');
}
function Son(U_name, age, sex) {
Father.call(this, U_name, age, sex)
}
let son = new Son('张三', 18, 'sex')
console.log(son);
那如果要把超类型构造函数里边的方法也继承过来就可以用下边这种方法:
方法继承:利用原型对象prototype继承方法