JavaScript 类:初学者指南

你好,未来的 JavaScript 大师们!今天,我们将踏上一段激动人心的旅程,探索 JavaScript 类的世界。如果你之前从未编写过一行代码,也不用担心——我将作为你的友好向导,我们会一步一步地学习。在本教程结束时,你将能够像一个专业人士一样创建你自己的类!

JavaScript - Classes

JavaScript 类是什么?

想象一下你在建立一个虚拟动物园。你不会想要单独描述每一种动物,对吧?这就是类派上用场的地方。类就像是一个用于创建对象的蓝图。它定义了该类型的所有对象应该具有哪些属性和行为。

让我们从一个简单的例子开始:

class Animal {
constructor(name, species) {
this.name = name;
this.species = species;
}

makeSound() {
console.log("这个动物发出声音");
}
}

在这个例子中,Animal是我们的类。就像说,“我们动物园里的每一个动物都将有一个名字、一个种类,并且能够发出声音。”

定义 JavaScript 类

在 JavaScript 中定义类,我们使用 class 关键字,后面跟类的名称。类名通常以大写字母开头——这不是必需的,但这是一个常见的约定,有助于将类与其他类型的代码区分开来。

constructor() 方法

constructor() 方法是一个用于创建和初始化用类创建的对象的特殊方法。当我们从这类创建一个新对象时,它会自动被调用。

class Book {
constructor(title, author, year) {
this.title = title;
this.author = author;
this.year = year;
}
}

在这里,titleauthoryear 是每个 Book 对象都将具有的属性。this 关键字指的是正在创建的对象。

创建 JavaScript 对象

现在我们有了类,让我们创建一些对象!

let myBook = new Book("了不起的盖茨比", "F. 斯科特·菲茨杰拉德", 1925);
console.log(myBook.title); // 输出:了不起的盖茨比

new 关键字用于创建我们 Book 类的新实例。就像说,“嘿,JavaScript,请根据这个 Book 蓝图给我做一本新书!”

JavaScript 类方法

方法是属于类的一个函数。它们定义了类的对象可以执行的行为。

class Dog {
constructor(name) {
this.name = name;
}

bark() {
console.log(`${this.name} 说:汪汪汪!`);
}

fetch(item) {
console.log(`${this.name} 抓住了 ${item}`);
}
}

let myDog = new Dog("巴迪");
myDog.bark(); // 输出:巴迪 说:汪汪汪!
myDog.fetch("球"); // 输出:巴迪 抓住了 球

在这个例子中,bark()fetch()Dog 类的方法。我们创建的每个 Dog 对象都将有这些能力。

JavaScript 类的类型

JavaScript 支持两种主要的类类型:

  1. 声明:这是我们到目前为止一直在使用的。

    class Rectangle {
    // 类体
    }
  2. 表达式:类也可以在表达式中定义。

    let Rectangle = class {
    // 类体
    };

两者都达到相同的结果,但类声明更常见,也更容易阅读。

JavaScript 类提升

与函数声明不同,类声明不会被提升。这意味着在代码中定义之前,你不能使用一个类。

// 这将抛出一个错误
let p = new Rectangle(); // 引用错误

class Rectangle {}

总是在使用之前定义你的类!

类的严格模式

这里有一个有趣的事实:类的主体总是执行在严格模式下。这意味着什么呢?就像有一个严格的老师,不允许你写出糟糕的代码。例如:

class StrictClass {
method() {
undeclaredVariable = 5; // 这将抛出一个错误
}
}

在严格模式下,你必须在使用之前声明变量。这有助于捕获常见的编码错误,并保持代码的整洁!

类方法表

下面是一些常见的类相关方法的便捷表格:

方法 描述
constructor() 初始化类的新实例
static 为类定义一个静态方法
extends 创建另一个类的子类
super 调用父类构造函数
get 定义一个获取器方法
set 定义一个设置器方法

结论

恭喜你!你已经迈出了进入 JavaScript 类世界的第一步。记住,像学习任何新技能一样,熟能生巧。试着创建你自己的类——也许是一个带有 startEngine()drive() 方法的 Car 类,或者是一个带有 useSpecialPower() 方法的 Superhero 类。

类是 JavaScript 中一个强大的工具,它允许你创建有组织的、可重用的代码。它们就像是编程的乐高积木——单独来看很简单,但组合在一起就能构建出惊人的东西。

继续编码,继续学习,在你意识到之前,你将能够轻松构建复杂的应用程序。快乐编码,未来的开发者们!

Credits: Image by storyset