ES6中的class与Java中的class有什么区别

小编 311

ES6中的class与Java中的class实质上没有什么区别。class是程序中专门集中保存一种类型的所有子对象的统一属性结构和方法定义的程序结构。ES6引入class的概念,通过class关键字来定义类,这点和Java是一样的。

1.ES6中的class

在ES6中,class就是类,是一般面向对象语言所具有的特性,类里面可以包含属性和方法。在ES6之前,通过“类”的概念生成实例对象的方法是通过构造函数实现的。

在ES6中,创建一种新的类型,只要包含构造函数+原型对象,都可以使用class创建。由于class只是构造函数的另一种写法,因此其原型对象和构造函数是一样的,类的所有方法都定义在类的prototype属性上,而根据原型链的规则,在实例上调用的方法,实际上就是调用原型上的方法,即类中的方法。

2.Java中的class

在Java语言中,一切皆是对象。而对象主要分为两种,一种是普通类创建的实例对象,一种是Class类对象。每个类运行时的类型信息就是通过Class对象表示的,这个对象包含了与类有关的信息。

Java中的class存在于java.lang包中,它的构造函数是私有的,由JVM(类加载器)创建class对象,我们可以通过getClass()方法获取到class对象。class对象,通过它我们可以获得创建的类的属性、方法等。

延伸阅读

什么是ES6语法

ES6是JavaScript语言的新版本,它也可以叫做ES2015,之前学习的JavaScript属于ES5。ES6是在ES5的基础上增加了一些语法,ES6是未来JavaScript的趋势,而且vue组件开发中会使用很多的ES6的语法,所以掌握这些常用的ES6语法是必须的。以下是ES6语法详解:

1.声明变量let和const

let 和const 是新增的声明变量的开头的关键字,在这之前,变量声明是用var关键字,这两个关键字和var的区别是:它们声明的变量没有预解析;而let和const的区别是:let声明的是一般变量,const申明的常量,不可修改。

2.箭头函数

箭头函数是ES6中新增的定义函数的方式,可以把它理解成匿名函数的第二种写法。函数体中只有一句代码,且代码的执行结果就是返回值,可以省略大括号;如果形参只有一个,可以省略小括号;箭头函数不绑定this关键字,箭头函数中的this,指向的是函数定义位置的上下文this。

3.解构赋值

ES6中允许从数组中提取值,按照对应位置,对变量赋值。对象也可以实现解构。数组解构,如果解构不成功,变量的值为undefined。

4.剩余参数

剩余参数语法允许我们将一个不定数量的参数表示为一个数组。

5.模版字符串

ES6新增的创建字符串的方式,使用反引号定义。模板字符串中可以解析变量、可以换行、调用函数。

6.扩展运算符

将数组或者对象转为用逗号分隔的参数序列。扩展运算符的应用:一是合并数组,二是将类数组或可遍历对象转换为真正的数组。

7.Set数据结构

ES6 提供了新的数据结构Set。它类似于数组,但是成员的值都是少数的,没有重复的值。Set本身是一个构造函数,用来生成Set数据结构;它可以接受一个数组作为参数,用来初始化。

8.symbol

ES6引入的一种新的原始类型Symbol,表示独一无二的值。Symbol的特点:属性对应的值是少数的,解决命名冲突问题;值不能与其他数据进行计算,包括同字符串拼串;for in, for of遍历时不会遍历symbol属性。

9.迭代器

迭代器是一种接口,为各种不同的数据结构提供统一的访问机制。通过Symbol.iterator来创建迭代器,通过迭代器的next()来获取迭代后的结果;迭代器是用于遍历数据结构的指针。

回复

我来回复
  • 暂无回复内容

注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部