JavaScript面向对象--类和对象

 

1.ES6中的类和对象

面向对象更贴近我们的实际生活,可以使用面向对象描述现实世界事物,但是事物分为具体的事物和抽象的事物手机,抽象的(泛指的)具体的(特指的)

面向对象的思维特点:

1.抽取(抽象)对象共用的属性和行为组织(封装)成一个类(模板)

2.对类进行实例化,获取类的对象

 

2.对象

现实生活中:万物皆对象,对象是一个具体的事物,看得见摸得着的实物。

在JavaScript中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串、数组、数值、函数等。

属性:事物的特征,在对象中用属性来表示(常用名词)

方法:事物的行为,在对象中用方法来表示(常用动词)

 

2.1 类 class

在ES6中新增了类的概念,可以使用class关键字声明一个类,之后以这个类来实例化对象。

抽象了对象的公共部分,它泛指某一大类class

对象特指某一个,通过类实例化一个具体的对象

 

 

2.2 创建类

class name{
//class body
}


//创建实例:
var xx=new name();

类必须使用new来实例化

 

2.3 类constructor构造函数

constructor()方法是类的构造函数(默认方法),用于传递参数,返回实例对象,通过new命令生成对象实例时,自动调用该方法。如果没有显示定义,类内部会自动给我们创建一个constructor().

 

 

2.4 类添加方法

 

 

 

3.1 继承

现实中的继承:子承父业,比如我们都继承了父亲的姓。

程序中的继承: 子类可以继承父类的一些属性和方法。

 

 

 

3.2 super关键字

super关键字用于访问和调用对象父类上的函数。可以调用父类的构造函数,也可以调用父类的普通函数。

 

 

 

3.3 super调用父类普通函数以及继承中属性方法查找原则

 

 

 

3.4-super必须放到子类this之前

 

 

 

 super必须在子类this之前调用

 

 

 

两个注意点

1. 在ES6中类没有变量提升,所以必须先定义类,才能通过类实例化对象

2. 类里面的共有的属性和方法一定要加this使用。

 

 

 

3.5  类里面的指向问题

 

constructor里面的this指向的是  创建的实例对象

方法里面的this指向这个方法的调用者

posted @ 2021-11-17 02:13  漫漫长路</>  阅读(140)  评论(0)    收藏  举报