工作日报_12

327 阅读2分钟

2020年5月14日 星期四

今天呢,还是接着昨天的Es2015进行了一个学习,es2015的Class类,作为对象的模板。通过class关键字,可以定义类。

class可以看作只是一个语法糖,它的绝大部分功能,ES2015都可以做到,新的class写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已。

class如何定义一个类:

    class Point {
        constructor(x, y) {
        this.x = x;
        this.y = y;
      }
    
      toString() {
        return '(' + this.x + ', ' + this.y + ')';
      }
    }

es5的一个继承方式 :

    1、原型链继承:
        子类.prototype=new 父类()
            * 优点:可以方便继承父类的方法
            * 缺点:不能传参
    2、借用构造函数继承
            借用构造函数继承
                    function 子类(参数1,参数2,...参数n) {
                          父类.call(this,参数1,参数2,...参数n)
                      }
             * 优点:传参方便 通过在子类,对父类通过call或apply来向父类传递参数
            * 缺点:父类的原型上方法是不能继承的
    3、组合继承
    
        *结合了原型链继承和借用构造函数继承优点来实现

原型链:

    在js中每个对象都有一个与它关联的对象,叫做原型对象。每一次获取对象属性都是一次查询过程
    ,当在对象的自有属性中找不到时就会去查找它的原型对象。以此类推...走到查找到null,即为原型链的最顶端

import:

    在 ES6 之前,社区制定了一些模块加载方案,最主要的有 CommonJS 和 AMD
    两种。前者用于服务器,后者用于浏览器。ES6
    在语言标准的层面上,实现了模块功能,而且实现得相当简单,完全可以取代 CommonJS 和 AMD
    规范,成为浏览器和服务器通用的模块解决方案。
    

    
    impoer的语法:
    
        import {myExport} from '/modules/my-module.js';

export default 和 export 区别:

1.export与export default均可用于导出常量、函数、文件、模块等
2.你可以在其它文件或模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使用
3.在一个文件或模块中,export、import可以有多个,export default仅有一个
4.通过export方式导出,在导入时要加{ },export default则不需要