美文网首页
9-ES6的类

9-ES6的类

作者: 谷子多 | 来源:发表于2018-04-19 23:31 被阅读0次

在 ES6 之前, JavaScript 没有 class.
JS 使用函数来充当实例的类, 事实上也叫构造函数. 连概念都有点乱, 但情况确实是这样.

看一个创建对象的案例:

// 定义对象类型
function Man(name) {
  // 实例的属性
  this.name = name;
}
// 实例化出一个对象
let sal = new Man('Sal');
sal.name; // 'Sal'

对象的属性会覆盖 prototype 上的同名属性, 但只在当前对象有用

new Man() 后会做以下事情:

  1. 创建了一个新对象, 这个对象继承了 Man.prototype.
  2. this 会绑定到新创建的对象上, 构造函数被调用. new Man 和 new Man() 是一样的.
  3. 构造函数返回的对象就是结果. 构造函数不显式返回一个对象,则使用步骤1创建的对象。

1、语法

image
    表达式
image

2、继承

class可以通过extends关键字实现继承。
image

注意事项:

子类必须在constructor方法中调用super方法,否则新建实例时会报错,这是因为子类没有自己的this对象,而是继承父类的this对象,然后对其进行加工,**如果不调用super,子类就得不到this对象**。

补充:

如果子类有和父类一样的方法:需要加上关键字super:


![image](https://img.haomeiwen.com/i8805811/3cce1f89fb2045fe?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

相关文章

  • 9-ES6的类

    在 ES6 之前, JavaScript 没有 class.JS 使用函数来充当实例的类, 事实上也叫构造函数. ...

  • Object类 所有类的基类

    Java 是一门典型的面向对象语言,提供 extends 关键字使子类继承父类。 但是创建 Person 类时不用...

  • 说说类的故事(基类、超类、父类、派生类...)

    基类、超类、父类都是一个意思,不同的叫法 基类、超类对应派生类 父类对应了子类

  • 类的经典类的容积。

    为什么哭不出来呢?因为,从小的时候输一点点委屈,就哭,长大后变得坚强,其实是泪点的容积变大了,就像是,干涸的土地,...

  • Class 的理解(类的类)

  • 类的本质-类对象

    前言 今天整理了下自己电脑里的一些碎片笔记,时间有限只整理了这篇文章——类的本质,大家可以进行参考。 1.本质 类...

  • 类和类的继承

    1.类的声明 2.类的继承 1)通过改变this指向 我们可以看到name和age属性实现了继承 当我们调用 to...

  • 类与类的组合

    方式一:定义时的组合,实现一个类调用另一个类的属性,达到代码重用的目的; 定义一个实例的方法的变量接收另一个类的对...

  • 基金A类、B类、C类的区别

    有时候同一类型的同一个基金产品,基金名称后面会带有A、B、C等字母标识,那么同样的基金不同的A、B、C标识有什么区...

  • 类与类之间的关系

    类是一系列对象的集合(类是存放对象的地方) 在类之间常见的关系有: 1.依赖 (“use-a”) 2.聚合 4....

网友评论

      本文标题:9-ES6的类

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