如何检查变量是一个真实对象或只是对象的引用

PG_*_*PG_ 2 javascript

考虑到:

A = {};
A.test = 123;
B = A;
C = {};
for (key in A) C[key] = A[key]; // a crude clone.
Run Code Online (Sandbox Code Playgroud)

在这个例子中,B是对A的引用,C是A的深层副本.

我知道我可以通过A === B和检查它们A === C

但如果我没有A,我可以在不知道"A"的情况下区分"B"和"C"吗?

hug*_*omg 8

在Javascript中没有"真实对象"这样的东西.A 也是一个参考.

如果您检查,B === C您将能够发现它们是单独的对象,但您将无法分辨哪一个是"原始".