在ES6中新增了类的概念,可以使用class关键字声明一个类,之后用这个类来实例化对象,类抽象了对象的公共部分,它泛指某一大类,对象特质某一个,通过类实例化一个具体的对象 举个例子:比如某一天我要吃零食,那么这个"零食"就是一个大类,因为其囊括了包括可乐,薯片..之类的零食,但是你要是说我想吃某一个品牌的薯片,那么这个薯片就是一个具体的对象(以上是现实中的例子) 在JS中,对象是由属性和方法组成的: 属性:事物的特征,在对象中用属性来表示(常用名词) 方法:事物的行为,在对象中用方法来表示(常用动词)
在JS中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串,数值,数组,函数等。
讲了以下类和对象的概念,那么如何创建类呢?
在这里我们先引入一个类构造函数————constructor构造函数,
constructor()方法是类的构造函数,用于传递参数,返回实例对象,通过new命令生成对象实例的时候,自动调用该方法,如果没有显示定义,类内部就会自动给我们创建一个constructor() 简单看一个代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
//1.创建类class创建一个明星类
class Star{
constructor(uname,age){
this.uname=uname;
this.age=age;
}
}
//2.利用类创建对象 new
var ldh=new Star('刘德华');
var zxy=new Star('张学友',20);
console.log(ldh.uname);
console.log(zxy);
</script>
</body>
</html>
结果:
执行流程:
首先创建一个类class,然后里面有个constructor(),constructor会接收传递过来的参数,同时把实例返回给ldh,调用类的时候,一定要用new,当一调用就会启动constructor,如果不写这个函数,类也会自动生成这个函数
注意:
1.生成实例的时候new不能省略
2.创建类的时候,类名后面不要加小括号,但是生成实例的时候,类名后面要加小括号,构造函数不需要加function