suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript – Probleme mit JS-Referenztypen unter Chrome

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

  1. Ich habe eine Variable a erstellt und ihr ein leeres Objekt zugewiesen

  2. Weisen Sie Variable a der Variable b zu

  3. aFügen Sie einen Attributnamen hinzu

  4. ein Abmelden

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梦过去多啦不再A梦2799 Tage vor869

Antworte allen(2)Ich werde antworten

  • 高洛峰

    高洛峰2017-05-19 10:46:03

    举个例子:
    a = {}; 假如 {} 在内存里的名字为 0x2334c;
    b = a; 实际执行的是 b = 0x2334c;
    a = null; 执行的是给a标记,等待销毁;
    但b 还在引用 0x2334c ,所以0x2334c被没有被销毁;
    除非 b和a = null;

    Antwort
    0
  • 滿天的星座

    滿天的星座2017-05-19 10:46:03

    a,b都指向同一块地址c,将a=null,只是让a不再指向c,并不是将c的数据销毁,然而b还是指向c,没毛病

    Antwort
    0
  • StornierenAntwort