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);