JS 类和继承

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

  

  

原文地址:https://www.cnblogs.com/413xiaol/p/11123759.html