【ES6】关于es6中面向对象的一些改进

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 等属性,方法可以写在函数内部。

猜你喜欢

转载自blog.csdn.net/meichaoWen/article/details/114106462