类字段、私有 # 字段与静态成员
创建带有公共字段的类,使用私有 # 字段隐藏数据,并添加静态属性和方法
类字段、私有 # 字段与静态成员 是 CoddyKit 上的免费 JavaScript Academy 课时。 这是第 1 节课,共 3 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 JavaScript Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 JavaScript Academy 课程共包含 3 节课。
为什么使用类
目标:构建小巧而清晰的类。
- 公开字段和方法
- 使用 #private 字段隐藏状态
- 使用 static 属性和方法提供类级辅助功能
- 让示例保持简短易读

公开字段与构造函数
创建一个包含公开字段和简短方法的类;对于初学者,让逻辑保持简单。
// Public fields and a simple method
class Counter {
// public field with default
value = 0;
constructor(start) {
// use a default if start is not provided
this.value = Number.isFinite(start) ? start : 0;
}
inc() {
this.value = this.value + 1;
}
}
const c1 = new Counter(2);
c1.inc();
console.log("value:", c1.value); // 3

私有 # 字段
#private 字段由语言强制执行,只能在类体内部使用。如有需要,请提供读取方法。
// Private # fields hide internal state
class SafeCounter {
// private field (only inside the class)
#value = 0;
constructor(start) {
this.#value = Number.isFinite(start) ? start : 0;
}
inc() { this.#value = this.#value + 1; }
getValue() { return this.#value; } // expose via method
}
const sc = new SafeCounter(5);
sc.inc();
console.log("safe value:", sc.getValue());
// External access fails (uncommenting the next line would throw):
// console.log(sc.#value);

使用获取器安全读取
获取器可以返回经过派生或验证的值,同时保持字段私有。
// Getters provide read-only views; simple guard logic
class User {
#name = "Anonymous";
constructor(name) {
if (typeof name === "string" && name.trim().length > 0) {
this.#name = name.trim();
}
}
get name() {
return this.#name;
}
}
const u = new User(" Ayla ");
console.log("name:", u.name);

静态成员
static 成员通过类调用(例如 MathHelp.circleArea()),而不是通过实例调用。
// Static = belongs to the class, not to instances
class MathHelp {
static PI = 3.14159;
static circleArea(r) {
if (!(typeof r === "number" && r >= 0)) return 0;
return MathHelp.PI * r * r;
}
}
console.log("PI:", MathHelp.PI);
console.log("area r=2:", MathHelp.circleArea(2));
// Instances do not have the static members:
const mh = new MathHelp();
console.log("instance has PI?", "PI" in mh); // false

适合初学者的习惯
提示:
- 优先使用包含少量清晰方法的小型类。
- 使用 #private 实现真正的私有性;下划线只是命名约定。
- 将常量和实用工具放在 static 成员上。
- 如果需要从外部访问,只公开最少的读取方法(获取器)。

私有字段基础测验
快速检查:#private 字段。

回顾
回顾:使用公开字段表示简单状态,使用 #private 隐藏内部实现,使用 static 提供类级辅助功能。让每个类都保持小巧易读。

常见问题解答
「类字段、私有 # 字段与静态成员」课时是免费的吗?
是的 — 「类字段、私有 # 字段与静态成员」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 JavaScript Academy 课程的其余内容,请升级到 CoddyKit PRO。 JavaScript Academy 课程共包含 3 节课。
「类字段、私有 # 字段与静态成员」这节课中我会学到什么?
创建带有公共字段的类,使用私有 # 字段隐藏数据,并添加静态属性和方法 你通过在浏览器中直接运行的动手代码来练习 JavaScript Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 JavaScript Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 JavaScript Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 3 节。
「类字段、私有 # 字段与静态成员」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 JavaScript Academy 课中编写并运行代码吗?
能。每节 JavaScript Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 类字段、私有 # 字段与静态成员
- 继承、super,以及何时优先使用组合
- 混入(浅尝)——无需深层继承体系的简单复用