原理:
利用寄生式+构造函数实现多个继承
代码理解
function User(name) {
this.name = name;
}
User.prototype.getName = function () { console.log(this.name) };
function Hobby() {
this.hobby = ['小姐姐', '70岁富婆']
}
Hobby.prototype.getHobby = function () { console.log(this.hobby) }
function CreateUser(name, age) {
this.age = age;
User.call(this, name);
Hobby.call(this);
}
CreateUser.prototype = Object.create(User.prototype);
Object.assign(CreateUser.prototype, Hobby.prototype);
CreateUser.constructor = CreateUser;
let users = new CreateUser('gf', 18);
console.log(users)
users.hobby.push('美女');
let users1 = new CreateUser('lisi', 12);
users.getHobby() // ['小姐姐', '70岁富婆', '美女']