în care rezultatul calculului expresiei trebuie să fie o referință la proprietate (obiect), de exemplu:
În cazul în care rezultatul expresiei nu este o proprietate (obiect), ștergeți nu face nimic.
nume obiect obiect sau o expresie care se evaluează la un obiect este. proprietate elimina proprietăți. index Un număr întreg care reprezintă indicele de matrice, care trebuie îndepărtată.
valoarea de retur
Returnează fals, numai în cazul în care există proprietatea în obiectul în sine, mai degrabă decât prototipurile sale, și nu pot fi eliminate. În toate celelalte cazuri, se returneaza true.
În cazul în care operatorul delete șterge cu succes, se elimină complet proprietatea de obiect. Cu toate acestea, în cazul în care există o proprietate de același nume în lanțul de prototip, obiectul moștenește această proprietate de prototip.
șterge este eficientă numai în ceea ce privește proprietățile obiectelor. Ea nu are nici un efect asupra numelor variabile și funcții.
Atribuirea unei valori unei proprietăți fără a specifica obiectului (fara operator var) uneori incorect caracterizate ca o variabilă globală (de exemplu, x = 5). De fapt, aceasta atribuie valoarea unei proprietăți a obiectului la nivel mondial.
șterge nu se poate elimina anumite proprietăți ale obiectelor încorporate (cum ar fi Object, Array, Math și așa mai departe). acestea sunt desemnate ca fiind specificația DontDelete ECMA-262.
În cazul în care obiectul moștenește proprietatea de prototip și nu deține proprietățile cu același nume, proprietatea nu poate fi îndepărtată prin tratament prin acest obiect. Cu toate acestea, puteți elimina această caracteristică direct în prototip.
Ștergerea elementelor de matrice
Când se utilizează operatorul eliminat elementul de matrice de ștergere, lungimea matrice nu se schimba. De exemplu, dacă ștergeți un [3], o [4] este încă o [4] și [3] nu este definit. Acest lucru este valabil chiar dacă eliminați ultimul element din matrice (șterge un [a.length-1]).
Atunci când operatorul delete elimină un element de matrice, acest element nu mai există în matrice. În exemplul următor, pomi [3] este îndepărtat prin ștergere.
Dacă doriți un element de matrice să existe, dar au o valoare nedefinită, utilizați valoarea nedefinită în loc de operatorul delete. În exemplul următor, arbori [3] este setat la nedefinit, dar încă mai există elementul matrice:
Problema cross-browser
În ciuda faptului că rezervele standard, ECMAScript comanda iterație de proprietăți obiect la discreția de a realiza o parte, se poate dovedi că toate browserele majore susțin ordinea de repetare bazată pe principiul „proprietate a adăugat la obiectul folosit pentru a merge înainte“ (cel puțin pentru proprietățile nu sunt în prototip). Cu toate acestea, în cazul cu Internet Explorer, atunci când cineva folosește Ștergețidin cu orice proprietate, aceasta duce la unele rezultate neașteptate, cauzând alte browsere refuza utilizarea unor obiecte simple, cum ar fi literali obiect, ca matrice asociative. În Internet Explorer, atunci când valoarea proprietății este setată la undefined, după eliminarea acestei proprietăți, dacă cineva adăuga mai târziu proprietăți cu același nume, acesta va fi în vechea sa poziție, nu la sfârșitul secvenței de repetare este de așteptat.
Prin urmare, dacă doriți să simuleze un tablou asociativ comandat în mediul cross-browser, fie va trebui să utilizeze două matrice separate (una pentru chei și una pentru valorile), sau pentru a construi o serie de obiecte cu o singură proprietate, și așa mai departe.