2013-04-13 12 views

Odpowiedz

8

Ściśle mówiąc pierwsza x nie jest zmienną, ale właściwością obiektu globalnego. W przeglądarkach zwykle jest to window (czyli x = "Hello" jest równa window.x = "Hello"). Nie można użyć delete, aby usunąć zmienne, ale można go użyć do usunięcia właściwości obiektu, i to jest to, co robi w pierwszym przypadku.

+0

Czy mogę więc zobaczyć, jak usuwanie obiektów z obiektów przypomina usuwanie elementów z tablic? – ProgrammerAtWork

+0

W pewnym sensie tak. – JJJ

+1

Zdecydowanie. 'delete' usuwa właściwość z obiektu. Słowo kluczowe "var" dołącza zmienną do bieżącego kontekstu lokalnego, podczas gdy deklaracja bez 'var' niejawnie dołącza zmienną do obiektu globalnego, tj.' Window'. Jednakże, gdy 'var' dołącza do' window' (kontekstu głównego), 'delete' nadal nie będzie działać. – Powerslave

5

This page ma długie wyjaśnienie, które wyjaśnia dlaczego.

Krótka odpowiedź to delete to właściwości, a nie zmienne. var y tworzy zmienną. x = "coś" tworzy właściwość zasięgu globalnego.

Należy również pamiętać, że nie wszystkie przeglądarki obsługują usuwanie tego samego. kaszel kaszel IE

+0

Ładny link :) Po prostu ciekawy, jak się z tym spotkałeś? – asifrc

+0

@asifrc Jest to odniesienie w dokumentach javascript mozilla. –

Powiązane problemy