面向对象

class{
        constructor(){//构造函数
            
        }
        foo(){
    
        }
    }
    继承
    class Cls2 extends Cls1{
        constructor(){
            super();
        }
    }
/*
    面向对象
        最重要的是封装和继承
        继承:继承一个已有的类,再扩展其功能
        ES6的继承
*/

//ES5的面向对象写法
function Person(name,age){
    this.name = name;
    this.age = age;
}
Person.prototype.sayName = function(){
    console.log(this.name+':'+this.age);
}
var P1 = new Person('blue','23');
P1.sayName();

//老版本的继承
function Vipperson(name,age,level){
    Person.call(this,name,age);
    this.level = level;
}
Vipperson.prototype = new Person();
Vipperson.prototype.constructor = Vipperson;
Vipperson.prototype.showLevel = function(){
    console.log(this.name,this.level);
}
var P = new Vipperson('j',21,2);
P.showLevel();



//ES6面向对象的写法
class Person1{
    constructor(name,age){//构造器,相当于构造函数
        this.name = name;
        this.age = age;
    }
    sayName(){//方法
        console.log(this.name + ':' + this.age);
    }
}
var P2 = new Person1('lu','25');
P2.sayName();

//ES6的继承
class Vipperson1 extends Person1{
    constructor(name,age,level){
        super(name,age);//继承属性和方法
        this.level = level; 
    }
    showLevel(){
        console.log(this.name + this.level)
    }
}
var P3 = new Vipperson1('z',10,1);
P3.showLevel();
P3.sayName();
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容