ES6快速学习(五)面向对象

2017-12-08  本文已影响0人  slTrust

ES6之前的面向对象使用函数模拟的 并非真正意义上的面向对象

始终坚信一句话 系统提供的API永远是最好的


以前的面向对象
各种恶心复杂版本的实现我就不说了
我才你肯定要问?(好奇害死猫)
自己看高三第六章

       function Person(name,age){
            this.name=name;
            this.age=age;
        }
        Person.prototype.showName=function(){
            return this.name;
        };
        Person.prototype.showAge=function(){
            return this.age;
        };

        //继承
        function Worker(name,age,job){
            Person.apply(this,arguments);
        }
        Worker.prototype=new Person();
        Worker.prototype.constructor=Worker;

        var p1=new Person('aaa',30);
        var w1=new Worker('bbb',10,'上学');

//        alert(p1.showName());
        alert(w1.showName());

真正意义上的面向对象

简易版

class Person{
    constructor(name,age){  //构造函数
        this.name=name;
        this.age=age;
    }
   showName(){
       return this.name;
   }
}

var p1=new Person('bbb',40);
alert(p1.showName());

继承

class Person{
    constructor(name,age){  //构造函数
        this.name=name;
        this.age=age;
    }
    showName(){
        return this.name;
    }
}
        //继承
class Worker extends Person{
    constructor(name,age,job){
        super(name,age);
        this.job=job;
    }
    showJob(){
        return this.job;
    }
}

var p1=new Person('bbb',40);
var w1=new Worker('aaa',10,'学生');

alert(p1.showJob);
//alert(w1.showJob());
上一篇 下一篇

猜你喜欢

热点阅读