属性继承
//父亲的构造函数
function Father(uname, uage) {
this.uname = uname;
this.uage = uage;
// this指向:指向Father创建的实例对象
}
//儿子的构造函数
function Son(uname, uage) {
//由于父类中已经有了姓名和年龄了,
//那么当前构造函数中没必要再写一遍this.uame了
//只要继承父类中的属性即可
//继承关键的因素:
//当前Son构造函数中的this指向谁: Son创建的实例对象
//继承的实现: 调用父构造函数是不是就可以访问uname 和 uage
Father.call(this, uname, uage);
}
let zs = new Son('张三', 28);
console.log(zs);
方法继承
function Father(uname) {
this.uname = uname;
}
// 设置的方法
Father.prototype.sing = function() {
console.log('正在唱歌....');
}
//子构造函数
function Son(uname) {
//继承了属性,并没有继承方法
Father.call(this, uname);
}
//如何让子构造函数继承父类中的方法呢?
Son.prototype = new Father();
//将构造函数再指回原来的构造函数
Son.prototype.constructor = Son;
let zs = new Son('张三');
zs.sing();
console.log(zs);