掌握JavaScript类的基本用法
需积分: 9 17 浏览量
更新于2024-12-11
收藏 754B ZIP 举报
JavaScript是一种动态的、基于原型的编程语言,尽管它的原型继承机制非常强大,但在ES6(ECMAScript 2015)发布之前,JavaScript中实现面向对象编程的方式与其他基于类的语言有所不同。ES6中引入了`class`关键字,它提供了一种更直观、更易于理解的方式来创建对象和处理继承。
1. 类声明
在JavaScript中使用`class`关键字声明类,类的声明不会提升(hoisting),这意味着必须先声明类,然后才能实例化。
```javascript
class Rectangle {
constructor(height, width) {
this.height = height;
this.width = width;
}
}
```
2. 类表达式
类表达式可以命名,也可以不命名,如果命名了,这个名称仅限于类体内部使用。
```javascript
// 匿名类
const Rectangle = class {
constructor(height, width) {
this.height = height;
this.width = width;
}
};
// 命名类
const Rectangle = class Rectangle {
constructor(height, width) {
this.height = height;
this.width = width;
}
};
```
3. 类的构造函数
`constructor`方法是类的构造函数(构造器),当创建类的新实例时会被调用。一个类中只能有一个名为`constructor`的方法。如果一个类没有显式定义`constructor`方法,则会默认添加一个空的`constructor`方法。
4. 类的实例方法
在类的方法定义中,不需要使用`function`关键字,也不需要在方法的末尾添加逗号。
```javascript
class Point {
constructor(x, y) {
this.x = x;
this.y = y;
}
toString() {
return `(${this.x}, ${this.y})`;
}
}
```
5. 类的静态方法
使用`static`关键字定义的静态方法属于类本身,而不是类的实例。静态方法通常用于提供工具函数。
```javascript
class Point {
static distance(a, b) {
const dx = a.x - b.x;
const dy = a.y - b.y;
return Math.sqrt(dx * dx + dy * dy);
}
}
```
6. 类的实例属性和静态属性
在ES2020中,引入了类属性的语法,允许在类的构造函数体之外定义属性。
```javascript
class Rectangle {
height = 0;
width;
constructor(height, width) {
this.height = height;
this.width = width;
}
}
class Point {
static x;
static y = 0;
constructor(x, y) {
this.x = x;
this.y = y;
}
}
```
7. 类的继承
使用`extends`关键字实现类的继承。一个类通过`extends`关键字继承另一个类,则该类称为子类,被继承的类称为父类(基类)。
```javascript
class Animal {
speak() {
console.log("hello");
}
}
class Dog extends Animal {
speak() {
console.log("bark");
}
}
```
在继承中,子类可以重写父类的方法,也可以调用父类的方法。通过`super`关键字调用父类的构造函数和方法。
8. 子类的`super`关键字
`super`关键字用于访问和调用一个对象的父对象上的函数。它常用于子类中,可以用来调用父类的构造器或者父类的方法。
```javascript
class Cat extends Animal {
constructor(name) {
super(); // 调用父类的构造器
this.name = name;
}
speak() {
super.speak(); // 调用父类的方法
console.log(`My name is ${this.name}`);
}
}
```
9. 私有字段和方法
JavaScript类中的私有字段和方法是使用`#`符号来标识的,它们只能在类的内部访问。
```javascript
class Counter {
#count = 0;
get value() {
return this.#count;
}
increment() {
this.#count++;
}
}
```
以上是JavaScript中类的基本语法的详细介绍。要实际掌握这些知识点,建议在实际编码中尝试使用类,通过编写代码实例来加深理解。通过以上内容,可以看出JavaScript中类的语法极大地方便了面向对象编程的实现,使得代码更加清晰和易于维护。
2021-07-14 上传
101 浏览量
160 浏览量
120 浏览量
126 浏览量
130 浏览量
122 浏览量
120 浏览量
155 浏览量
weixin_38695293
- 粉丝: 6
最新资源
- 蓝桥杯Java与C语言编程实战题解
- Elixir中的可重用与组合模式:expat库介绍
- 增强网页布局:自定义jQuery网格瀑布流插件
- iOS13真机调试包下载指南
- React应用开发入门:项目构建与脚本使用指南
- Indglass-crx插件:快速访问Glassdoor公司评价
- opal_benchmarks:蛋白石性能快速评测基准介绍
- 解决MySQL数据库安装导致msvcr100.dll丢失问题
- 机械制图基础教程第四部分讲解
- VC中实现Tab视图切换功能的技巧与源码解析
- haibun:基于Rust的财务管理系统构建指南
- WebExtension功能介绍:卸载并管理Firefox标签页
- 全屏及特定应用屏幕捕获的Screen Capturing插件
- 乐之邦03us龙版声卡官方驱动 v3.0.1.0 发布
- 在 Django 中运行国会图书馆 BFE Django 项目教程
- 串行SPI+RGB ILI8961测试程序的TFT显示应用开发