美文网首页让前端飞js基础
5 ES6 class类、ES7class类

5 ES6 class类、ES7class类

作者: 官清岁月 | 来源:发表于2019-05-11 08:07 被阅读0次

    1、面向过程&面向对象:

    (1).面向过程编程思想:其聚焦点把功能拆分成步骤,一环扣一环的完成,但是需求复杂到一定程度后,实现难度“陡增”,对开发者能力的挑战也越来越强;

    (2).面向对象编程思想:其前期把功能拆分并抽象成不同的对象,聚焦点是对象实现的功能以及它们之间的配合,大型项目的构建相对于面向过程开发更加轻松些; -> 面向对象语言要比面向过程语言学习难度大,例如java,前期学习就需要具备较强的“逻辑抽象”能力;

    - - - >>> javaScript:弱类型,解释性,多范式的编程语言,其不是完全的“面向对象”语言,而是“基于对象”的语言,js中基本上一切皆对象;[面向对象的编程语言需具备封装、继承、多态,js比较弱化这些概念]

    - - ->>> 前端开发需要面向对象的思想:例如封装模块,实现代码复用,从而降低项目开发的复杂度;组件化开发;目前主流框架Vue React都采取面向对象的方式来实现;

    - - - >>> ES6 class类便是“更好的面向对象”

    2、ES6 class类 -> class、constructor、static、extends、super;//语法糖

    (1).console.log(typeof Plane);//'function' ->验证了class类底层实现便是“构造函数”;

    (2).class类主要是实现继承相比于ES5原型链继承写一大堆代码更加便捷了,ES5中私有属性继承采取的是“借用构造函数”,原型继承采取“圣杯模式”最佳,class类使用extends、super即可实现继承;

    (3).class类与ES5的区别:Plane必须使用new+函数执行,Plane();//报错;Plane.prototype不能枚举;其新增静态属性;

    3、ES7class类 -> static property = xxx;静态属性;aa = xxx;私有属性; @decorator 装饰器;//以上皆为提案属性,表示即使是最高版本浏览器也不兼容,需要下载插件配合babel转换器使用;

    (1).浏览器不支持,需安装插件:npm install @babel/plugin-proposal-decorators

    (2).ES7支持私有属性定义(省略了this.xxx = xxx;),原型属性依旧只有“方法”形式的;

    (3). @decorator 装饰器 -> 其就是函数,装饰类、私有属性、原型属性,聚焦点:装饰它们的属性为“可读、可写、可枚举、可配置”等,参数较复杂(使用过程中可console.log(););

    相关文章

      网友评论

        本文标题:5 ES6 class类、ES7class类

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