JavaScript 对象 ID

2024-01-04

JavaScript 对象/变量是否有某种唯一标识符?就像鲁比那样object_id。我指的不是 DOM id 属性,而是某种内存地址。


如果您想在不修改底层对象的情况下查找/关联具有唯一标识符的对象,您可以使用WeakMap https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap:

// Note that object must be an object or array,
// NOT a primitive value like string, number, etc.
var objIdMap=new WeakMap, objectCount = 0;
function objectId(object){
  if (!objIdMap.has(object)) objIdMap.set(object,++objectCount);
  return objIdMap.get(object);
}

var o1={}, o2={}, o3={a:1}, o4={a:1};
console.log( objectId(o1) ) // 1
console.log( objectId(o2) ) // 2
console.log( objectId(o1) ) // 1
console.log( objectId(o3) ) // 3
console.log( objectId(o4) ) // 4
console.log( objectId(o3) ) // 3

Using a WeakMap代替Map确保对象仍然可以被垃圾收集。

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

JavaScript 对象 ID 的相关文章

  • 特定日期的plotly js图像标记

    我正在使用这个例子 https plot ly javascript images add multiple images https plot ly javascript images add multiple images并尝试在特定日
  • 验证以防止角度形式出现重复的形式值

    我有几个表单数组 我需要进行验证 以便每个表单行中的特定字段在所有表单数组中必须是唯一的 如果任何值出现多次 则两个表单字段都必须标记为红色 我设法编写了一个函数 以便如果这些字段有任何更改 该函数将返回 true false 但我不确定如
  • 如何使用 Angular 1.5 中的组件为每个页面设置标题

    我最近开始使用 Angular 1 5 组件 我的应用程序中有多个页面 所以我决定创建一个
  • 如何在 contenteditable 中跟踪插入符/光标?

    我想在 contenteditable 中跟踪插入符 光标的移动 不过 我不确定最好的方法是什么 我目前正在监听点击 按下键盘 按下键盘的声音 当然 像箭头键或 ctrl x 这样的按键甚至不会触发 虽然 click 工作正常 但 keyd
  • Web Worker 中的 RequireJS

    我正在尝试在网络工作者中使用 RequireJS 问题是我在使用它时不断收到以下错误 Uncaught Error importScripts failed for underscore at lib underscore js 我已经测试
  • 如何提取 Backbone 集合的属性

    我想从 Backbone 集合创建一个特定属性值的数组 var days select this collection models function model return model attributes type session d
  • 考虑使用“jsdom”测试环境

    我有这个简单的测试 import React from react import render from testing library react import Button from describe Button gt it rend
  • 热成像调色板

    自热成像早期以来 红外热像仪经常使用独特的调色板 从黑色到蓝色 品红色 橙色 黄色到亮白色 这个调色板通常被称为Iron or Ironbow 这是使用前视红外相机拍摄的图像的典型假彩色可视化 来源 维基百科 术语科特 http commo
  • 如何从 github 安装需要构建步骤的 npm 包,例如什么时候分叉一个库?

    假设您使用类似的库vue3 datepicker https www npmjs com package vue3 datepicker 您意识到您需要自定义某些内容 并且作为第一步 您想要使用它的自定义分支 问题是 当包被推送到 npm
  • 如何使用 file:///F:/foldername 访问 ajax 中的本地文件夹?但它适用于 http://

    在这里 我使用以下代码使用 AJAX jQuery 动态创建文件名列表 window load function var fileExt csv document ready function ajax url file F foldern
  • 动画和过渡的组合无法正常工作

    我一直在尝试添加一些基本的 CSS3 动画 目标是在按钮的单击事件上切换类 并根据添加的类对 div 进行动画处理 该代码对于 Firefox 中切换的第一次迭代完美运行 但对于 Chrome 等其他浏览器以及 Firefox 中的下一次迭
  • 为什么此 Firebase 可调用函数不返回值?

    我有一个应返回值的可调用函数 但唯一返回的是 null 以下是该功能的当前版本 我也尝试过回报第一个承诺 原来的once调用 最后在另一个then返回 GUID 在这种情况下它实际上返回了数据 但它立即返回并且 GUID 为空 我怎样才能实
  • 如何将 iLike 运算符与 Sequelize 结合使用来进行不区分大小写的查询

    我使用 Sequelize 和 PostgreSQL 来管理我的数据库 我想执行不区分大小写的搜索查询 当我用谷歌搜索时 有人说我可以使用 iLike 运算符来做到这一点 我尝试以这种方式实现 var getRadiosByGenre fu
  • YouTube 播放器 API:getDuration()、getCurrentTime()、getVideoData() 不起作用

    对于我的应用程序 我尝试使用 YouTube Iframe 播放器 API 来播放视频 并允许用户更改视频而无需重新加载页面 我通过使用来实现这一点player loadVideoById video id 方法 通过YouTube视频id
  • Xml、xsl Javascript 排序

    我正在寻找一种使用 javascript 对 xml 数据进行排序的方法 并希望最终过滤掉数据 我知道这一切都可以在 xsl 文件中实现 但我想在客户端进行 我已经搜索了多个使用 javascript 进行排序的地方 但其中大部分要么太特定
  • 如何在模态窗口中显示pdf? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个模式窗口 其中包含锚文本 当我单击此链接时 它必须调用其他位置的 pdf 并将其显示在弹出窗口中 我怎样才能做到这一点 请帮忙
  • 为什么使用 MarkForCheck() 和 setTimeout?

    我对 ChangeDetectorRef 中的 MarkForCheck 方法有疑问 对于一种用法我必须使用this cd markForCheck 因为在控制台中我获取了值 但它没有在视图上更新 setTimeout gt this ch
  • Web 文本编辑器中的 RTF 格式

    网络上是否有支持 RTF 格式文档输入的文本编辑器 我知道这对 webdev 来说有点奇怪 但我需要从数据库中读取 RTF 文档 并在基于 Web 的文本编辑器中对其进行编辑 然后将其存储回 RTF 中 在我在转换工具上投入太多资金之前 我
  • 电子节点集成不起作用,也普遍奇怪的电子行为[重复]

    这个问题在这里已经有答案了 我是 Electron 的新手 我一直在努力让它工作 我遇到了无法解释的行为 所以这里有一个总结 我无法让 Electron 和 html 之间的通信正常工作 即使我有nodeIntegration true 网
  • 使用 ASP.Net 和 Ajax 的登录页面

    我正在尝试使用 html ajax 和 ASP NET 制作登录页面 数据确实传递给 ajax 函数 但是当我调试 asp 页面时 用户名和密码以 NULL 发送 该代码应该获取用户名和密码 然后返回用户 ID html页面 div Use

随机推荐

  • 当键盘处于活动状态时,ScrollViewer 不会向上滚动

    如何在 Windows Phone 中获取表单行为 例如 设置 gt gt 移动网络 gt gt EditAPN 在此页面中 滚动查看器中有许多文本框 当用户点击任何文本框并获得焦点时 页面会向上滚动 标题保持不变并显示 SIP 键盘 当用
  • 检查从每一组中至少选择一个单选按钮(使用 jquery)

    我在表单上动态拉动并显示单选按钮问题 通过 jquery 选项卡分为不同的部分 因此 有很多 2 3 4 5 等单选按钮在一起 它们具有相同的 名称 但 id 不同 当您在各部分之间点击下一步时 我想检查是否为每组至少选择了一个单选按钮 当
  • Angular 4 和 Bootstrap 4 - 合并验证类

    今天我发现我的应用程序中的验证并不总是正确显示 在一个特定的例子中 角度将失败required if
  • 如何将新的 Orderer 组织添加到现有的 Hyperledger Fabric 网络

    我正在尝试向基于 RAFT 的现有订购服务添加一个新的订购者组织 我正在使用first network from fabric samples作为基础网络 在生成加密材料时 我进行了修改 为另外 1 个订购者组织生成加密材料 这crypto
  • 如何在PyQt5中正确异步加载图像?

    我正在尝试弄清楚如何完成异步图像加载正确地 在 PyQt Qlistview 中 我的主要小部件包括Qlistview and a QLineEdit文本框 我有一个演员数据库 我使用以下子类进行查询QAbstractListModel当在
  • 如何限制计算引擎仅接受来自应用程序引擎的请求

    我正在运行我的服务器Google App engine我在哪里使用nodejs我还有所有其他服务 例如mongoDB Elasticsearch and Redis部署于Compute engine 现在 出于安全考虑 在所有数据库实例 M
  • 如何在 TimePickerAndroid 中为反应本机设置最短日期

    我使用react native创建了一个简单的表单library https github com xgfe react native datepicker与开始时间和结束时间 我问自己为什么我可以在ios上毫无问题地设置开始时间和结束时间
  • 无法使我的 Spring Boot 应用程序与 jsp 一起工作

    我的有问题弹簧靴网络应用程序 它用嵌入式码头 它必须是 jetty 而不是 tomcat 并且它使用jsp意见 但似乎没有办法让嵌入式 jetty 与 jsp 视图一起工作 实际上 当我运行 mu 应用程序服务器时 服务器已成功启动 但是当
  • mysql 酒店客房供应情况

    我在Mysql中有一个可用性表如下 id room id int 11 avail date date 对于每个房间 每个可用日期都有一行 可能存在间隙 例如房间 1 可能有 8 月 1 2 3 5 6 13 14 15 的条目 每隔一天就
  • 如何使用 JSBN 加密 Crypto-JS 密钥?

    我在用着JSBN http www cs students stanford edu tjw jsbn 使用公钥 私钥对加密 解密数据 它非常适合文本数据 包括十六进制字符串 我的问题是现在我有二进制数据 特别是加密JS https cod
  • Oracle 中的有效日期检查

    我有一个以 varchar 格式存储的日期值 有效日期或无效日期 是否可以在sql查询中检查日期是否有效 是的 如果你知道格式并且很少使用 plsql 假设您有格式的日期 yyyy mon dd hh24 mi ss create func
  • IE:indexOf 结果“对象不支持此属性或方法”

    我有以下 if 语句 if buyArray indexOf dealWith 0 1 这是在 ie 即 XP 上的 8 中出现 对象不支持此属性或方法 的情况 有人有解决这个问题的方法吗 是的 IEindexOf 您可以实现如下所示的垫片
  • 具有可用 Eclipse Mylyn 支持的 git 分布式问题跟踪器?

    我在用着git用于版本控制 但我目前缺乏一个好的问题 错误 票证跟踪器与 Eclipse Mylyn 集成 我正在寻找的功能 开源实现 以便我可以添加将来需要的功能 优先使用 GPL LGPL MIT 或 BSD 许可证 分散式 问题mus
  • Azure 表存储异常:409 意外冲突?

    我正在使用 WindowsAzure Storage nuget 包版本 9 0 0 Install Package WindowsAzure Storage Version 9 0 0 以下代码 table CreateIfNotExis
  • 如何在 Django 中加载主干的引导模型

    当主干应用程序加载时 对于我的应用程序来说 这意味着页面已加载 我需要初始收集数据 主干文档说 我不明白这一点 这是否意味着我应该使用初始数据渲染页面 例如 collection initial data 我在后端使用 django 那么如
  • 示例无效的 utf8 字符串?

    我正在测试我的一些代码如何处理错误数据 并且我需要一些无效 UTF 8 的字节序列 你能发布一些 最好能解释一下为什么它们不好 你从哪里得到它们吗 In PHP examples array Valid ASCII gt a Valid 2
  • PhoneGap 还是 JqueryMobile? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我在 PhoneGap Cordova 上构建了应用程序 并在此过程中遇到了很多困难 因此我想我的下一个版本将使用 jQuery Mobile
  • Django 'image' 属性没有与之关联的文件

    当用户注册我的应用程序时 当他到达个人资料页面时 我收到此错误 The image attribute has no file associated with it Exception Type ValueError Error durin
  • VS Code 无法识别 Pi Pico SDK 标头

    所以我已经完成了在 Linux 的 Windows 子系统中编译的所有设置 一切都工作正常 我正在 VS Code 中编写代码 但它无法识别 pico stdlib h 等标头 代码编译并工作正常 但最好能正确设置代码 这样我就可以获得自动
  • JavaScript 对象 ID

    JavaScript 对象 变量是否有某种唯一标识符 就像鲁比那样object id 我指的不是 DOM id 属性 而是某种内存地址 如果您想在不修改底层对象的情况下查找 关联具有唯一标识符的对象 您可以使用WeakMap https d