首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ES6 class的理解(一)

先来看看在ES6之前是如何表示类的。

在ES6之前是没有类的概念,但是有近类结构,使用构造函数和原型链来模拟,如下:

function Animal(family,species) {

this.family = family;

this.species = species;

};

console.log(this.family);

}

let dog = Animal('dogs','four feet');

ES6中的类声明语法

class 类名{

constructor(参数1,参数2,...){

code:给类的属性赋值

}

fun1(){

code:类的方法

}

fun2(){

code:类的方法

}

}

var 类实例名=new 类名(参数1,参数2,...)

那么typeof 类名 会返回什么呢?

为什么一个类的类型会是function?

类声明仅仅是基于已有自定义类型声明的语法糖。

事实上,类声明实际上创建了一个具有构造函数方法行为的函数。而类声明中定义的方法,实际上是该类的prototype上的一个方法:

实际上类声明语法和ES6之前的近类结构是相似的,方法都在原型上。

类的继承

创建一个Point2D类

创建Point3D类并继承Point2D,核心关键字extends, super

这样的继承方式比使用function继承来的更为直接和方便。

最后测试:

这样使用super便实现了对父类方法的继承。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180424G1TP5M00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券