类和对象

1.基本定义和使用

1 {
2     class Parent{
3         constructor(name='zyn'){
4             this.name=name;
5         }
6     }
7     var pp = new Parent('zyn...');
8     console.log('构造函数实例',pp)
9 }

2.继承 extends 

 1 {
 2     class Parent{
 3         constructor(name='zyn'){
 4             this.name=name;
 5         }
 6     }
 7     class Child extends Parent{
 8 
 9     }
10     console.log('继承',new Child())
11 }

3.继承传递参数,super

 1 {
 2     class Parent{
 3         constructor(name='zyn'){
 4             this.name=name;
 5         }
 6     }
 7     class Child extends Parent{
 8         constructor(name='child'){
 9             super(name);  //super中是父元素的属性列表,如果子类需要增加属性,super需要放在最前面
10             this.type='cc';
11         }
12     }
13     console.log('继承传递参数',new Child(),new Child('hello'))
14 }

4.getter,setter

 1 {
 2     class Parent{
 3         constructor(name='zyn'){
 4             this.name=name;
 5         }
 6         get longName(){   //注意是属性,虽然写法像函数
 7             return 'zz'+this.name;
 8         }
 9         set longName(value){
10             this.name=value
11         }        
12     }
13     let vv =new Parent();
14     console.log('getter',vv.longName);
15     vv.longName='zzzzzHello';
16     console.log('setter',vv.longName)
17 }

5.静态方法,通过类调用,而不是类的实例

 1 {
 2     // 静态方法,通过类调用,而不是类的实例
 3     class Parent{
 4         constructor(name='zyn'){
 5             this.name=name;
 6         }
 7         static tell(){
 8             console.log('tell')
 9         }
10     }
11     Parent.tell(); //tell
12 }

6.静态属性直接定义在类上

 1 {
 2     // 静态属性
 3     class Parent{
 4         constructor(name='zyn'){
 5             this.name=name;
 6         }
 7         static tell(){
 8             console.log('tell')
 9         }
10     }
11 
12     Parent.type='test';  //静态属性直接在类上定义
13     console.log('静态属性',Parent.type)
14 }
posted @ 2019-12-17 19:08  木汐a  阅读(147)  评论(0编辑  收藏  举报