嗯,我不确定我是否清楚地描述了这个问题,目前我正在使用ExtJS进行一些开发,我看到一些对象是“singleton”,例如“Ext.Viewport”,在C++中,我可以获取对象的地址,看看它们是否是同一个对象,在Python中,我能使用“id”函数获取对象的哈希代码,在Java中,我有类似的内置函数“hashCode”来检查对象是否真的是相同的对象,javascript中有类似的方法吗?因此,如果javascript中有一些函数或运算符,那么我可以判断ExtJS中定义为“singleton”的对象是否真的引用了相同的对象。
5条答案
按热度按时间gkn4icbw1#
你不需要这么复杂的东西。如果两个值是同一对象,则它们将相等。
如果它们是不同的(即使是相同的)对象,它们就不会是。
wtlkbnrh2#
你的问题不太清楚,但我会尽力回答。
默认情况下,Javascript本身不为每个对象使用唯一标识符。如果你想,你可以添加这个。
根据您的需求,还可以使用typeof运算符来比较类型。
然而,ExtJ确实使用唯一的id(id或itemId),并且还允许您获取所使用对象的类名。因此,您可以在ExtJ中轻松做到这一点。
答案取决于您是在比较对象的类型,还是实际的对象示例本身。
其他SO answer可能有益
qncylg1j3#
I think that I'm understanding you... but, did you check this JavaScript comparator ?
reference: Javascript comparators
0kjbasz64#
如果要知道两个对象引用是否引用同一个单个对象示例,请使用
==
。如果要对引用的对象进行深入比较,以查看对象是否包含所有相同的值,即使它们不是相同的对象示例,请使用Lodash的e1d1e方法。
brtdzjyr5#
也可以将两者转换为json,并使用类似于jsonDiff:https://github.com/pkafel/json-diff的内容