ECMAScript 6 学习系列课程 (ES6 class的相关用法)

来源:互联网 发布:防止sql注入的函数 编辑:程序博客网 时间:2024/06/04 21:09

这里写图片描述

面向对象的变成思想,是现在最流行的一种思想,java C++ c# php, 等等都是面向对象的语言,提到面向对象,我们肯定要提到类的概念,因为有类才有对象, 那么如果定义一个类,就至关重要了。

ES6不得不说已经向大语言靠拢了, 在ES6中我们居然看到了Class的语法,是不是很牛,而且还可以定义构造方法,实例化一个类,我们也可以像java一样 new 一个class。 不仅如此,我们还可以实现继承的操作, 话不多说,我们看代码:

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

上面的代码就是通过class定义的一个类,constructor()就是我们所谓的构造方法了,通过构造方法可以对对象的属性进行初始化赋值操作。

如果想定义一个对象的方法,也不需要通过function, 只需要制定一个名字,比如 toString() {}这样就ok。

对于这样一个函数,如果我们用ES5我们就需要通过原型链的概念:

function Point(x, y) {  this.x = x;  this.y = y;}Point.prototype.toString = function () {  return '(' + this.x + ', ' + this.y + ')';};var p = new Point(1, 2);

定义了一个类同样可以继承一个类,继承操作,是通过extends完成, 比如:

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

如果继承一个类,我们可以使用父类的方法和属性,但是在子类的构造中需要指定super()。

另外需要注意的一点是, class不会存在变量提升。

0 0