1. 类class(ES6)
- 在
ES6中新增加了类的概念,可以使用class关键字声明一个类,之后以这个类来实例化对象。 类抽象了对象的公共部分,它泛指某一大类(class)。- 对象特指某一个,通过类实例化的一个具体的对象。
2. 创建类
- 语法:
关键字 类名{} - 构造函数:
constructor()方法是类构造函数,用于传递参数,返回实例对象。
通过new命令生成对象实例时,自动调用该方法,如果没有定义,类内部会自动给我们创建一个constructor()构造函数中可以传递参数。 - 类中的方法:
方法名(){}
a). 类中的方法不需要加function
b). 多个方法之间不需要逗号分隔
c). 方法中可以传递参数 - 通过类实例对象:
var 对象名 = new 类名()class Person{ constructor(name, age) { this.name = name thia.age = age } sayHolle(mag) { console.log('大家好我是' + msg) } } const p = new Person('张三', 18)
3. 类的继承(extends)
- 关键字:
extends用于子类继承父类
继承语法: class 子类 extends 父类{} - 关键字:super 用于调用父类的构造函数和普通函数
在子类构造函数中调用父类构造函数:super();可以传参数,必须写在子类构造函数的第一行; 在子类的函数中调用父类的函数:super.父类函数名();// 父类 class Fu { constructor(name) { this.name = name } } // 子类继承父类 class Zi extends Fu{ constructor(name, age) { super(name) this.age= age } }
4. 使用类注意事项
- 在
ES6中没有变量提升,所以必须先定义类,才能通过类实例化对象。 - 在类里面的使用共有属性和方法,一定要加
this使用。 constructor里面的的this指向实例对象,方法里面的this指向这个方法的调用者
5. 类的本质
- 类的本质其实就是一个函数,也可以简单的认为类就是构造函数的另外一种写法
- 类有原型对象
prototype - 类原型对象
prototype里面的constructor指向类本身 - 类的所有方法都定义在类的
prototype属性上,类也可以通过原型添加方法 - 类的实例化对象里面也有
_proto_原型,它指向类的原型对象prototype
6. 继承
继承:类与类之间的关系,面向对象的语言的继承是为了多态服务的,js不是面向对象的语言,但是可以模拟面向对象.- 模拟继承.为了节省内存空间
原型作用:继承(数据共享) 目的是:为了节省内存空间原型继承:改变原型的指向借用构造函数继承:主要解决属性的问题
格式:被借用的构造函数名.call(this,形参)组合继承:原型继承+借用构造函数继承,既能解决属性问题,又能解决方法问题拷贝继承:就是把对象中需要共享的属性或者犯法,直接遍历的方式复制到另一个对象中
本文详细介绍了JavaScript中的类,包括类的声明、实例化、构造函数、类的方法以及类的继承。强调了在类中使用方法的注意事项,如需使用`this`关键字。还探讨了类的本质,指出类实际上是一个函数,并且类的实例具有原型链。最后,文章讨论了继承的重要性,如何通过原型继承和借用构造函数实现数据共享,以解决属性和方法问题。
4万+

被折叠的 条评论
为什么被折叠?



