• es6中类的继承属性和super关键字


     class Person{
           constructor(name,age,sex){
               this.name = name;
               this.age = age;
               this.sex = sex;
           }
           getSex(){
               return this.sex;
           }
           isMan(){
               return this.sex === 1;
           }
           isWomen(){
               return this.sex === 0;
           }
       }
    
       class Man extends Person{
           constructor(options) {
               super(options.name,options.age,1);
               this.strength = options.strength || 10;
           }
           getInfo(){
               return {
                   name:this.name,
                   age:this.age
               }
           }
           isStrong(){
               return this.strength > 20;
           }
       }
       class Women extends Person{
           constructor(options) {
               super(options.name,options.age,0);
           }
           getInfo(){
               return {
                   name:this.name,
                   age:this.age
               }
           }
       }
    //在这里new一个实例
     var man = new Man({
           name:'张三',
           age:18,
           strength:30
       });
       console.log(man.getInfo(),man.isMan(),man.isStrong())// name:“张三”,age:“18” ,true,true
    var w = new Women({
           name:'张一',
           age:18,
           strength:30
       });
       console.log(w.getInfo(),w.isMan()) // name:“张一”,age:“18” ,false

    以上案例很简单的用了继承属性及super关键字,如果明白了,那么下面的这个案例既可以测试下,来看看打印结果是什么吧?

    class Father {
        test(){
            return 0;
        }
        static test1(){
            return 1;
        }
    }
    class Child extends Father {
        constructor(){
            super();
        }
    }
    //调用父类方法, super 作为对象,在普通方法中,指向父类的原型对象,在静态方法中,指向父类
    class Child2 extends Father {
        constructor(){
            super();
            // 调用父类普通方法
            console.log(super.test()); 
        }
        static test3(){
            // 调用父类静态方法
            return super.test1+2;
        }
    }
    Child2.test3(); 
    console.log(super.test()); 这个打印结果是 0
    Child2.test3(); 这个的打印结果是 3

    好了,很简单,应该都知道吧。最近想再回顾下es6的语法,就想写此博客记录下

  • 相关阅读:
    java8 parallel并行处理实战
    java相关技术问答(二)
    [安卓基础] 007.管理Activity的生命周期
    [Python基础]009.os模块(1)
    [Objective-C] 012_数据持久化_XML属性列表,NSUserDefaults
    SD.Team团队人物形象
    读Pyqt4教程,带你入门Pyqt4 _013
    [Objective-C] 011_数据持久化_NSKeyedArchiver
    [Objective-C] 010_Foundation框架之NSSet与NSMutableSet
    [JavaWeb基础] 007.Struts2的配置和简单使用
  • 原文地址:https://www.cnblogs.com/web001/p/14789109.html
Copyright © 2020-2023  润新知