美文网首页
ES6中的类的总结

ES6中的类的总结

作者: xiexw | 来源:发表于2018-06-26 15:05 被阅读0次

    js常用的编程模式有面向过程编程和面向对象编程
    (1)面向过程编程
    “面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。“面向过程”也可称之为“面向记录”编程思想,他们不支持丰富的面向对象特性(比如继承、多态),并且它们不允许混合持久化状态和域逻辑。
    在前端vue过程中大部分都是采用面向过程编程。
    (2)面向对象编程
    面向对象编程是专指在程序设计中采用封装、继承、多态等设计方法进行编程,理解其的关键在于封装、继承、多态。
    在Js语言中学习面向对象编程需要了解类的概念,本文借此一起学习回顾一下ES6中关于类的知识点:

    与es5中构造函数区别:
    a.类中的所有方法都是定义在类的原型上的
    b.类的内部所有定义的方法,都是不可枚举的(non-enumerable),这一点与es5不一致,es5中可以枚举
    c. 类中不存在变量提升,必须先定义后使用
    d. 继承原理不同

    封装:
    a.类中的私有方法有两种方法定义,一是依赖模块作用域将私有方法定义在类外部;二是利用Symbol值的唯一性,将私有方法的名字命名为一个Symbol值
    b.类中的静态方法和实例方法,注意类的静态方法中的this指的是类,实例方法中的this指的是实例
    c.new.target可以用来区分构造函数是否是通过new调用

    继承:
    a.使用extends关键词实现继承,子类必须在constructor方法中调用super方法,原因是子类的this必须是基于父类的this进行修改。
    b.父类的静态方法也被子类继承
    c.super在子类构造函数中可以作为函数执行,在其他地方作为对象,如果在普通方法中,该对象指向父类的原型对象,如果在静态方法中,该对象指向父类。
    d.两条继承链:作为一个对象,子类的原型(proto属性)是父类;作为一个构造函数,子类的原型对象(prototype属性)是父类的原型对象(prototype属性)的实例。(个人理解:如果结合java语言的类来理解,构造函数的原型对象就是类本身,类的实例的原型就是类)

    相关文章

      网友评论

          本文标题:ES6中的类的总结

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