Menu
CoddyTech

公有与私有类字段

本课属于 Coddy JavaScript 学习旅程的“面向对象编程”单元。第 18 课,共 56 课。

在 JavaScript 类中,我们可以定义两种类字段:公有字段和私有字段。

公有字段可以从类外部访问,任何人都可以使用。

创建一个包含公共字段的类:

class Student {
  name = '';
  grade = 0;
  
  constructor(name, grade) {
    this.name = name;
    this.grade = grade;
  }
}

创建一个学生实例:

const student = new Student('Alice', 95);

从类的外部访问公共字段:

console.log(student.name); // 输出:"Alice"
student.grade = 98;
console.log(student.grade); // 输出:98

私有字段用 # 符号表示,只能在类内部访问:

class Student {
  name = '';
  #grade = 0;
  
  constructor(name, grade) {
    this.name = name;
    this.#grade = grade;
  }
  
  getGrade() {
    return this.#grade;
  }
  
  updateGrade(newGrade) {
    this.#grade = newGrade;
  }
}

使用私有字段:

const student = new Student('Bob', 87);
console.log(student.name); // 输出:"Bob"

// 通过方法访问私有字段
console.log(student.getGrade()); // 输出:87

// 通过方法更新私有字段
student.updateGrade(92);
console.log(student.getGrade()); // 输出:92

// 这样会导致错误:
// console.log(student.#grade); // SyntaxError
challenge icon

挑战

  1. 在名为 UserAccount 的类中添加两个属性:
    1. 一个公共属性 username
    2. 一个私有属性 #password
  2. 添加一个构造函数,接收 username 和 password 参数

亲手试试

import { UserAccount } from './userAccount.js';

// 测试代码,请勿修改
const user = new UserAccount("alice", "secret123");
console.log(user.username);          // 应输出 "alice"

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

面向对象编程中的所有课

自己练习: JavaScript 在线编译器