如何枚举私有 JavaScript 类字段

2023-11-25

我们如何通过私有类字段进行枚举?

class Person {
  #isFoo = true;
  #isBar = false;

  constructor(first, last) {
    this.firstName = first;
    this.lastName = last;
  }

  enumerateSelf() {
    console.log(this);
    // (pub/priv fields shown)

    // enumerate through instance fields
    for (let key in this) {
      console.log(key)
      // (only public fields shown)
    }

    // How do we enumerate/loop through private fields too?
  }
}

new Person('J', 'Doe').enumerateSelf();

It's 不可能。他们是私人领域,并且没有枚举方法。只有类声明静态地知道声明了哪些类。它们不是属性,甚至没有代表私有名称的语言值,您无法动态访问它们 (就像括号符号一样).

你会得到的最好的就是

enumerateSelf() {
    console.log(this);
    for (let key in this) {
        console.log("public", key, this[key]);
    }
    console.log("private isFoo", this.#isFoo);
    console.log("private isBar", this.#isBar);
}

一个悬而未决的问题在关于“的私人领域提案”中私有字段迭代”,然而 TC39 成员国的第一个评论是“私有字段不是属性。你无法通过设计来反思它们。".

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何枚举私有 JavaScript 类字段 的相关文章

  • 将 OoXml 插入单词抛出错误:未知

    我一直在尝试通过office js将OOXML插入到word文档的正文内容中insertOoXML 方法 我什至尝试过最简单的实现 认为我在尝试替换 XML 本身中的 fieldCodes 时做了一些不正确的事情 所有结果都是这样Error
  • 如何在同一页面上使用AJAX处理多个表单

    我有一个表单 当我单击 提交 时 它就被提交了 然后该表单隐藏 操作页面的结果显示在 div 中 classname dig 它工作正常 但是当我添加另一个表单时 它停止正常工作并且所有表单同时提交 我如何更改我的代码 done click
  • 关闭选项卡时要求确认[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 当我在某些浏览器上关闭页面时 我希望出现一个消息框 并询问我是否真的要关闭页面 有两个按钮 如果我单击No那么这个标签就不会被关闭 我怎样
  • React js Stripe 结账不起作用

    我正在尝试在 React js 应用程序中呈现条带结账默认表单
  • 不和谐机器人 |不和谐.js |类型错误:无法读取未定义的属性“长度”

    我正在制作一个 Discord 机器人 并且正在使用 CodeLyon 的视频作为参考 该错误位于我的 message js 文件中 该文件包含以下内容 require dotenv config create cooldowns map
  • 为什么 JavaScript base-36 转换看起来不明确

    我目前正在编写一段使用 Base 36 编码的 JavaScript 我遇到了这个问题 parseInt welcomeback 36 toString 36 看来要回归了 welcomebacg 我在 Chrome 开发者控制台和 Nod
  • 在 Vue.js 中从父组件执行子方法

    目前 我有一个 Vue js 组件 其中包含其他组件的列表 我知道使用 vue 的常见方式是将数据传递给孩子 并从孩子向父母发出事件 但是 在这种情况下 我想在子组件中的按钮出现时执行子组件中的方法 parent被点击 哪种方法最好 一种建
  • 解析“流”JSON

    我在浏览器中有一个网格 我想通过 JSON 将数据行发送到网格 但浏览器应该在接收到 JSON 时不断解析它 并在解析时将行添加到网格中 换句话说 在接收到整个 JSON 对象后 不应将行全部添加到网格中 应该在接收到行时将其添加到网格中
  • 使用 JavaScript 使链接保持活动状态并在单击时显示悬停效果

    I am struggling to make this work I d like to make it where if O F is clicked the hover state stays active if another li
  • 在 Wordpress 站点中进行 AJAX 调用时出现问题

    我在使用 Wordpress 站点功能的 AJAX 部分时遇到了一些问题 该功能接受在表单上输入的邮政编码 使用 PHP 函数来查找邮政编码是否引用特定位置并返回到该位置的永久链接 我的第一个问题是关于我构建的表单 现在我的表单操作是空白的
  • 可以使用 jQuery 或 Javascript 将图片的特定部分用作链接吗?

    我有这个想法 将图片 而不是文本 的各个部分链接到不同的页面或网站 并且我想在不实际创建不同的照片并将它们彼此靠近的情况下完成 这样看起来就像是一张完整的图片 这里有人知道如何使用 JavaScript 的变体 例如 jQuery 或纯 J
  • Javascript正则表达式用于字母字符和空格? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我需要一个
  • Jquery/Javascript 上传和下载文件,无需后端

    是否可以在没有后端服务器的情况下在 JavaScript 函数中下载和上传文件 我需要导出和导入由 JavaScript 函数生成的 XML 我想创建按钮 保存 xml 来保存文件 但我不知道是否可行 另一方面 我希望将 XML 文件直接上
  • 使用 KnockoutJs 映射插件进行递归模板化

    我正在尝试使用以下方法在树上进行递归模板化ko映射 插入 http knockoutjs com documentation plugins mapping html 但我无法渲染它 除非我定义separate每个级别的模板 在以下情况下
  • Laravel 中只向登录用户显示按钮

    如果我以 John 身份登录 如何才能只显示 John 的红色按钮而不显示 Susan 的红色按钮 测试系统环境 Win10 Laravel5 4 Mysql5 7 19 table class table table responsive
  • 为什么在 Internet Explorer 中访问 localStorage 对象会引发错误?

    我正在解决一个客户端问题 Modernizr 意外地没有检测到对localStorageInternet Explorer 9 中的对象 我的页面正确使用 HTML 5 文档类型 并且开发人员工具报告该页面具有 IE9 的浏览器模式和 IE
  • Javascript 纪元时间(以天为单位)

    我需要以天为单位的纪元时间 迄今为止 我已经看到过有关如何翻译它的帖子 但几天后就没有了 我对纪元时间很不好 我怎么能得到这个 我需要以天为单位的纪元时间 我将解释为您想要自纪元以来的天数 纪元本身是第 0 天 或第 1 天的开始 无论您如
  • JQuery 图像上传不适用于未来的活动

    我希望我的用户可以通过帖子上传图像 因此 每个回复表单都有一个上传表单 用户可以通过单击上传按钮上传图像 然后单击提交来提交帖子 现在我的上传表单可以上传第一个回复的图像 但第二个回复的上传不起作用 我的提交过程 Ajax 在 php 提交
  • 如何仅在最后一个
  • 处给出透明六边形角度?
  • 我必须制作这样的菜单 替代文本 http shup com Shup 330421 1104422739 My Desktop png http shup com Shup 330421 1104422739 My Desktop png
  • 如何获取浏览器视口中当前显示的内容

    如何获取当前正在显示长文档的哪一部分的指示 例如 如果我的 html 包含 1 000 行 1 2 3 9991000 并且用户位于显示第 500 行的中间附近 那么我想得到 500 n501 n502 或类似的内容 显然 大多数场景都会比

随机推荐

  • “self”在 iOS 5.1 上的调试器中不可用

    我正在尝试调试在 iOS 5 1 下运行的问题 当我在出现错误的代码内的调试器中停止并尝试使用调试器打印某些内容时 我收到消息 错误 警告 在声称捕获的上下文中停止 Objective C 对象指针 但 self 不可用 假装我们 在一般背
  • IE 的 ajax (XDR) 响应不一致

    我正在从 iframe 发出 ajax 请求 该请求通过 IE 插件注入到每个页面上 我用的是IE跨域请求因为 jQuery 的 ajax 在 IE 上失败 这在 IE8 和 9 上的运行时间为 75 另外 25 xdr onload甚至不
  • 从 RPC 编码的 WSDL 生成 Java 客户端的最简单方法是什么

    我对 Web 服务的概念不熟悉 目前正在开发一个项目 需要通过 SOAP 从外部应用程序检索一些数据 该应用程序提供了 RPC 编码的 WSDL 目前 我发现由于 RPC 被取代 用 Java 为该服务创建客户端非常困难 到目前为止 我得到
  • 从 .NET 应用程序捕获控制台输出 (C#)

    如何从 NET 应用程序调用控制台应用程序并捕获控制台中生成的所有输出 请记住 我不想先将信息保存在文件中 然后重新列出 因为我希望实时接收它 使用以下命令可以很容易地实现这一点ProcessStartInfo RedirectStanda
  • SCRIPT、STYLE 和 LINK 元素上的类型属性是否仍然需要?

    您将看到许多网站具有以下类型的代码 脚本元素 链接元素 风格元素 我的问题是这样的 Are the type当今流行的浏览器需要哪些属性 通俗指 IE 8 Firefox Webkit Opera 和 Chrome 如果你会发生什么do n
  • 在 Android Service 类中哪里停止/销毁线程?

    我通过以下方式创建了线程服务 public class TCPClientService extends Service Override public void onCreate Measurements new LinkedList
  • psycopg2 的 AWS Lambda 层

    我正在尝试创建一个新的 lambda 层来使用 psycopg2 导入 zip 文件 因为该库使我的部署包超过 3MB 并且我再也看不到 lambda 函数中的内联代码 我使用 Python 3 7 为以下 2 种情况创建了 lambda
  • 导入模块只是为了运行它

    我有一个 JavaScript 文件 它为我正在使用的表单验证库注册验证器 这些验证器可以通过该库访问 因此我不需要将其导入到任何地方 我只需要确保它运行一次 如何在 es6 中以这种方式导入模块 项目中执行此操作的最佳位置是什么 我目前将
  • 如何在firebase云函数中从通配符获取数据

    假设我触发以下事件ref users userId items newItem 我想从通配符内部获取一个值userId 我努力了var token event params userId token但它返回未定义 有什么建议么 在 fire
  • Gradle:如何从 JScience jar 依赖项中排除 javax.realtime 包(多个 dex 定义)

    我在 Android 应用程序中使用 Gradle 我想使用 JScience 库依赖项 我以这种方式添加了库 dependencies compile fileTree dir libs include jar compile org j
  • 自定义弹出编辑器中的 kendoui 验证工具提示未正确定位

    请参见jsfiddle例如 空白 名字 字段以显示验证工具提示 在正常形式中 验证工具提示正确地位于每个元素的右侧 但在网格的弹出编辑器中 它仍然尝试将工具提示放置在元素下方 就像它在内联编辑一样 我努力了 span class k inv
  • 在 Perl 中覆盖区分大小写的正则表达式

    是否可以覆盖 Perl 中先前定义的正则表达式的区分大小写 例如 如果我有以下内容 my upper qr BLAH x my lower qr upper xi warn blah lower 我希望第三行打印出正匹配 您可以添加 i正则
  • 如何让 32 位 Perl 读取 64 位 Windows 注册表?

    我有一个 32 位 Perl 安装程序 使用它我需要能够安装和卸载 32 位和 64 位应用程序 安装 32 位和 64 位就可以了 卸载32位也可以 但是 我在卸载 64 位应用程序时遇到问题 应用程序只知道应用程序的名称 如控制面板中的
  • React 路由器重定向条件

    我正在尝试制作一个按钮 仅在验证正确完成后将用户重定向到新页面 有没有办法做这样的事情 如何在类方法内激活路由 import validator from validator class Example constructor props
  • 使用 microsoft.web.helpers 后登录重定向发生变化

    在 asp net mvc3 网站中 我导入了 microsoft web helpers webmatrix data 和 webmatrix webdata 之后 我发现当我在控制器中的某些 ActionResults 上使用 Auth
  • Rails 3 引擎和静态资源

    我正在构建一个捆绑为 gem 的引擎 gmaps4rails 我将引擎的 public 复制到了 Rails 应用程序的 public 中 在开发中一切正常 但在生产中无法正常工作 似乎找不到静态资产 我的引擎和我的主应用程序 日志讲述了以
  • Bash 脚本将日期和时间列转换为 .csv 中的 unix 时间戳

    我正在尝试创建一个脚本来将 csv 文件中的两列 日期和时间 转换为 unix 时间戳 因此 我需要从每一行获取日期和时间列 将其转换并将其插入到末尾包含时间戳的附加列中 有人可以帮助我吗 到目前为止 我已经发现了将任何给定时间和日期转换为
  • WaitHandle.WaitAny 和 Semaphore 类

    Edit 我想说这个问题只是暂时的精神错乱 但当时这是有道理的 见下面的编辑2 对于 NET 3 5 项目 我有两种类型的资源 R1 and R2 我需要检查其可用性 每种资源类型在任何时候都可以有 比如说 10 个实例 当任一类型的资源可
  • 如何访问 MIPS 中字的各个位的状态?

    我正在编写一个程序 我需要确定是否设置了位 3 和 6 我知道我可以旋转一个单词或左 右移动它 但如何访问各个位的状态呢 我是否使用像 and xor 这样的按位运算符 您可以使用 0x08 和 0x40 进行按位与运算 假设位 0 是最低
  • 如何枚举私有 JavaScript 类字段

    我们如何通过私有类字段进行枚举 class Person isFoo true isBar false constructor first last this firstName first this lastName last enume