es5中面向对象
function show(name, age){
this.name = name
this.age = age
}
show.prototype.showNane = function(){
alert(this.name)
}
show.prototype.showAge = function(){
alert(this.age)
}
var fn = new show('wen', 28)
fn.showAge()
fn.showNane()
es6中面向对象
class show{
constructor(name, age){ //构造器
this.name = name
this.age = age
}
showNane(){
alert(this.name)
}
showAge(){
alert(this.age)
}
}
let fn = new show('wen', 28)
fn.showAge()
fn.showNane()
关于继承
es5写法
function vipShow(name, age, level) {
show.call(this, name, age)
this.level = level
}
vipShow.prototype = new show()
vipShow.prototype.constructor = vipShow
vipShow.prototype.showLevel = function () {
alert(this.level)
}
var fn = new vipShow('wen', 28, 3)
fn.showAge()
fn.showNane()
fn.showLevel()
es6写法
class vipShow extends show{
constructor(name, age, level){
super(name, age)
this.level = level
}
showLevel(){
alert(this.level)
}
}
let fn = new vipShow('wen', 28, 3)
fn.showAge()
fn.showNane()
fn.showLevel()
es6 相比之前多了 class extends 等属性,方法可以写在函数内部。