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

class VipUser extends User {
    constructor(name, pass, level) {
        super(name, pass)
        this.level = level
    }
    showLevel(){
        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);

  

  

猜你喜欢

转载自www.cnblogs.com/413xiaol/p/11123759.html