2009-10-05 11 views
17

Jestem programistą Java, który próbuje Flex. Oto mój problem:actionscript (flex): jak sprawdzić, czy właściwość obiektu istnieje (lub zdefiniowana)?

Zachowuję obiekty ActionScript jako asmap, ale gdy obiekt nie ma właściwości, daje on wyjątek: Brak takiej zmiennej.

Tutaj spodziewam się, że daje mi zero, zamiast dawać wyjątek. Czy wiesz, że istnieje sposób, aby sobie z tym poradzić, a mianowicie sprawdź, czy właściwość jest zdefiniowana dla obiektu.

trace (obj [ "2008-02"]) // daje wyjątek

Odpowiedz

29

użyć coś wzdłuż linii

if (myObject.hasOwnProperty("propertyName")) 

aby sprawdzić, czy nieruchomość nie istnieje.

Edytuj: Zobacz także here.

+0

dzięki za szokującą szybką odpowiedź – javanes

0

spróbować

if (obj["2008-02"] != null) { then do something } 

to jest null, ale nie można wyjściowy null. możesz także spróbować przekonwertować go na ciąg znaków dla celów trace().

1

hasOwnProperty()doesn't work correctly z dziedziczeniem, właściwościami statycznymi lub słownikami.

Należy użyć

if ("propertyName" in myObject) 

zamiast.

Powiązane problemy