在 JavaScript 中,每个对象都有一个唯一的标识符,称为对象 ID。对象 ID 在对象创建时由 JavaScript 引擎自动分配,并且在对象生命周期内保持不变。对象 ID 可以用来比较两个对象是否相等。
对象 ID 的获取
可以通过 Object.getOwnPropertyDescriptor()
方法获取对象的 ID:
----- --- - --- ----- ---- - ------------------------------------ ------------- ------------------------
上述代码将输出一个字符串,它代表了 obj
对象的 ID。
对象 ID 的比较
可以使用 ===
运算符比较两个对象的 ID 是否相等。如果两个对象引用的是同一个对象,则它们的 ID 相等,反之则不等。
----- ---- - --- ----- ---- - ----- ---------------- --- ------ -- ----
在上面的示例中,obj2
引用了与 obj1
相同的对象,因此它们的 ID 相等。
----- ---- - --- ----- ---- - --- ---------------- --- ------ -- -----
在上面的示例中,obj1
和 obj2
引用了两个不同的对象,因此它们的 ID 不相等。
对象 ID 的应用
对象 ID 可以用来检查对象是否已经被某个函数处理过。例如,可以使用一个对象作为参数调用一个函数,然后在下一次调用该函数时检查对象的 ID 是否相同,以避免重复处理相同的对象。
-------- ------------ - -- --------------- --- ---- - ------- - -- ------- -------------- - ---- - ----- ---- - --- -------------- -------------- -- ---- ----- ---- - --- -------------- -- --
上述代码中,process()
函数使用 lastId
属性来存储上一次处理的对象的 ID。如果下一次调用时传入的对象与上一次相同,则不会进行处理。
总结
JavaScript 对象 ID 是一个唯一标识符,用于比较两个对象是否相等。可以使用 Object.getOwnPropertyDescriptor()
方法获取对象的 ID,使用 ===
运算符比较两个对象的 ID,以及应用对象 ID 避免重复处理相同的对象。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/13820