您现在的位置:首页 >> 前端 >> 内容

ES6的class语法实例解析

时间:2018/6/29 16:02:03 点击:

  核心提示:普通面对对象function Person( name,age){ this.name=name; this.age=age; }Person.prototype..sayhello=function...

普通面对对象

function  Person( name,age){

   this.name=name;

   this.age=age;   

}

Person.prototype..sayhello=function( ){

      console.log(this.name)

}

//实例

const p=new Person('kaivon' , 18);

p . showName( );

//ES6面向对象

class  whitePerson(name,age){

    constructor:{

       this.name=name;

       this.age=age;

    } //注意这不能写逗号

    showName( ){

        console.log(this.name)

    }

}

const p1=new whitePerson('kaivon' , 18);

p1 . showName( );

class是一个声明,与var,let一样。它的作用是声明一个类

语法  

    class name[extends]{

       //class body

    }

    extends为继承,是个可选参数

注意:

声明的类还是构造函数

不能重复声明,会报错(相当于声明一个变量,与let,const一样)

与ES5写的构造函数行为一致,除了原型里方法的可枚举性以外

共享方法(实例方法)直接写,它会自动放在prototype上

共享属性(实例属性)需要写在constructor里

共享属性和方法

1,类里的this指向实例,所以属性都放在this上,一般会在constructor里去定义

2,共享方法放在大括号内,因为大括号内容的方法会最终放到prototype里

私有属性与方法

1,ES6规定大括号里面只能放方法,不能放属性,

2,或者在类的外面添加属性,

3,私有方法可以被其他子类继承

new . target属性 返回构造函数(类)

1,一般用在构造函数之中,在class内部指向构造函数

2,如果构造函数不是通过new命令调用的,将返回undefined

3,当有继承的时候,它放回子类

class的方法也有私有的:加个static

//get和post

class Pop{

   get  att( ){

       return  '你获取了'

    }

   set att( ){

     console.log(`你设置了个${value}`);

   }

}

const  p1=new Pop( );

console.log( p1.att ); //你获取了

p1.att='名字' ; // 你设置了个名字

Tags:ES S6 6的 的C 
作者:网络 来源:L_AMiao的博客