使用教程
本教程将详细介绍如何使用 ES 私有字段演示工具的各个功能模块,帮助您快速上手并高效学习 JavaScript 私有字段语法。
第一步:选择预设场景
打开工具后,您会在页面顶部看到场景选择器。点击下拉菜单,可以选择以下五个预设场景之一:
- BankAccount(银行账户):这是最基础的入门场景。类定义展示了如何使用
#balance私有字段来保护账户余额,防止外部直接篡改。建议从这个场景开始学习。 - UserAuth(用户认证):这个场景展示了私有字段在安全敏感场景中的应用。密码通过
#password私有字段存储,只能通过验证方法进行访问。 - PrivateMethods(私有方法):除了私有字段,ES2022 还引入了私有方法。这个场景展示了
#validate()等私有方法与私有字段的协同工作方式。 - StaticPrivate(静态私有字段):静态私有字段在类的所有实例间共享,但对外部代码完全不可见。这个场景展示了单例模式和实例计数器的实现。
- in-operator(in 操作符):这个场景专门展示
#field in object语法的用法,用于在类外部安全地检查对象是否拥有某个私有字段。
第二步:阅读和编辑代码
选择场景后,代码编辑器会显示该场景的类定义代码。代码采用了语法高亮显示,私有字段(以 # 开头的字段名)会被特别标记。您可以:
- 阅读现有代码:仔细阅读类的结构,理解每个字段和方法的作用。注意
#前缀的字段都是私有的。 - 修改字段定义:尝试修改私有字段的初始值,观察运行结果的变化。
- 添加新字段:在类定义中添加新的私有字段或方法,测试其行为是否符合预期。
- 修改方法逻辑:修改公有方法中的逻辑,观察私有字段在不同操作下的状态变化。
编辑完成后,点击"运行"按钮或使用快捷键来执行更新后的代码。
第三步:使用测试控制台
测试控制台是本工具的核心交互区域。在控制台中,您可以输入 JavaScript 表达式来测试当前类实例的行为。以下是常用测试命令:
// 创建类实例
const account = new BankAccount(1000);
// 测试公有字段访问
account.name; // 应返回公有字段值
// 测试私有字段直接访问(会报错)
account.#balance; // TypeError: Cannot access private field
// 测试方法访问
account.getBalance(); // 通过公有方法获取私有字段值
// 测试括号访问
account['#balance']; // undefined(不是有效的私有访问)
// 测试 Object.keys()
Object.keys(account); // 只包含公有属性
// 测试 in 操作符
#balance in account; // true(在类定义中使用)
第四步:自定义字段名测试
如果您想要测试自定义的字段名,可以在工具提供的输入框中输入字段名(不需要 # 前缀)。工具会自动为您创建一个包含该字段的测试类,并生成相应的测试代码。
这个功能特别适合验证以下场景:
- 以单个下划线开头的字段(如
_private)是否真的私有 - 以双下划线开头的字段(如
__private)的行为 - 使用
#前缀和不使用前缀的字段对比 - 空字符串或特殊字符作为字段名的处理
常见问题与注意事项
- 浏览器兼容性:请确保您使用的是支持私有字段的现代浏览器(Chrome 91+、Firefox 90+、Safari 15+、Edge 91+)。
- 类定义语法:私有字段只能在类的顶层定义中声明(如
#field = value;),不能通过赋值操作动态创建。 - 子类访问:私有字段在子类中不可访问,即使是同一个类定义中创建的实例也不行。
- 序列化影响:私有字段不会被
JSON.stringify()序列化,也不会出现在Object.keys()的结果中。
学习建议
建议在学习过程中,先理解每个场景的设计意图,再动手修改代码。遇到错误时不要急于查看答案,先思考错误的原因,这样可以加深对私有字段机制的理解。每次修改后都运行代码,观察变化,这样可以建立清晰的因果关系认知。
UD5工具箱