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则不需要