In Bezug auf Referenztypen ist die Wertzuweisung nur eine Kopie des Heap-Speichers, d. h. mehrere Variablen verweisen auf denselben Heap-Speicher. Aber unter Chrome bin ich beim Testen auf eine solche Situation gestoßen. Ich hoffe, die Experten können mir eine Antwort geben
Im Bild unten
Gemäß der Verwendung von Referenztypen sollte das Objekt beim Abbrechen von a nicht mehr existieren, aber b hat immer noch diese Referenz. Meine Frage lautet: Sollte das von b ausgegebene Ergebnis nicht null sein, oder?
举个例子:
a = {}; 假如 {} 在内存里的名字为 0x2334c;
b = a; 实际执行的是 b = 0x2334c;
a = null; 执行的是给a标记,等待销毁;
但b 还在引用 0x2334c ,所以0x2334c被没有被销毁;
除非 b和a = null;
a,b都指向同一块地址c,将a=null,只是让a不再指向c,并不是将c的数据销毁,然而b还是指向c,没毛病