You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在无类实例时访问类属性?及私有信息防序列化实现

实现思路提示
  • 利用闭包特性:在构造函数内部定义myMethod,让它直接访问构造函数参数privateInfo,此时方法作为闭包可以保留对该变量的引用,且不会挂载到实例属性上,序列化时自然不会被包含。
  • 使用WeakMap存储:创建一个外部的WeakMap(或类的静态私有WeakMap),将实例作为键,privateInfo作为值存入。myMethod通过这个WeakMap根据当前实例获取对应的值,WeakMap的内容不会被序列化,且弱引用不会阻碍实例的垃圾回收。
  • 可选补充:如果接受实例上存在隐藏属性,也可以用Symbol作为属性键——默认的JSON.stringify序列化会忽略Symbol类型的属性键,但如果需要彻底不在实例上保留属性,前两种方案更贴合需求。

内容的提问来源于stack exchange,提问作者user12582392

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 08:05:34