美文网首页
ES6面向对象支持程度

ES6面向对象支持程度

作者: 馒头学前端 | 来源:发表于2019-02-23 17:33 被阅读0次

    面向对象特点

    面向对象特点介绍

    重载:一个类里面存在方法名相同,但是参数不一样的方法

    ES5模拟面向对象

    http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_encapsulation.html

    http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance.html

    http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance_continued.html

    ES6 class 面向对象支持情况

    图片

    私有方法模拟

    1._约定

    2.将方法移出类定义,在模块内部可见,在模块外部不可见

    3.方法命名未一个Symbol值

    4. 私有属性/方法提案:#

    静态方法

    静态方法可以继承,只能在类上调用,不能在实例上调用

    class ParentClass {

        static testStaticMethod() {

            console.log('testStaticMethod');   

     }

    }

    class ChildClass extends ParentClass {

    }

    ParentClass.testStaticMethod() ; // testStaticMethod

    ChildClass.testStaticMethod() ; // testStaticMethod

    (new ParentClass()).testStaticMethod() ; // Error

    静态属性

    class ParentClass {

        static testStaticPro = 'testStaticPro';

    }

    console.log(ParentClass.testStaticPro); // testStaticPro

    抽象方法模拟

    class ParentClass {   

        m1() {

            throw new Error();

        }

        m2() {

            throw new Error('m2 method is not implementd');

        }

    }

    class ChildClass extends ParentClass {

        m1() {

            console.log('m1');

        }

    }

    let child = new ChildClass();

    child.m1(); // m1

    child.m2(); // new Error();

    多重继承

    extends不支持集成多个父类,但是class本质是function,可以通过mixin多个funciton,达到多重继承的效果

    相关文章

      网友评论

          本文标题:ES6面向对象支持程度

          本文链接:https://www.haomeiwen.com/subject/kvepyqtx.html