function User(name, pass) { this.name = name this.pass = pass } User.prototype.showName = function () { console.log(this.name) } User.prototype.showPass = function () { console.log(this.pass) } function VipUser(name, pass, level){ User.call(this, name, pass) this.level = level } VipUser.prototype = new User() VipUser.prototype.constructor=VipUser VipUser.prototype.showLevel = function(){ console.log(this.level) } var u1 = new User('u1', '123') u1.showName() u1.showPass() var v1 = new VipUser('v1', '123', '1') v1.showName() v1.showPass() v1.showLevel() console.log(v1 instanceof User); console.log(v1 instanceof VipUser); console.log(u1 instanceof User); console.log(u1 instanceof VipUser);
ES6中
class User { constructor(name, pass) { this.name = name this.pass = pass } showName() { console.log(this.name) } showPass() { console.log(this.pass) } showAll() { console.log(this.name, this.pass) } } class VipUser extends User { constructor(name, pass, level) { super(name, pass) this.level = level } showLevel(){ console.log(this.level) } showAll() { console.log(this.name, this.pass, this.level) } } var u1 = new User('u1', '123') u1.showName() u1.showPass() u1.showAll() var v1 = new VipUser('v1', '123', '1') v1.showName() v1.showPass() v1.showLevel() v1.showAll() console.log(v1 instanceof User); console.log(v1 instanceof VipUser); console.log(u1 instanceof User); console.log(u1 instanceof VipUser);