Są więc pytania na temat S.O. które odpowiadają, jak sprawdzić, czy istnieje właściwość obiektu. Example Odpowiedz to użycie Object.prototype.hasOwnProperty()
.Jak sprawdzić, czy właściwość istnieje w potencjalnie niezdefiniowanym obiekcie?
Jak jednak sprawdzić właściwość potencjalnie niezdefiniowanego obiektu?
Jeśli ktoś próbowałby bezpośrednio sprawdzić, czy dana właściwość istnieje na niezdefiniowanym obiekcie, byłby to błąd odniesienia.
Wydaje się, że lepiej jest sprawdzić kod bezpośrednio if (obj.prop) //dosomething
- pokazuje wyraźniejsze intencje. Czy jest jakiś sposób, aby to osiągnąć? Korzystnie jest tam wbudowana metoda JavaScript do zrobienia czegoś takiego lub konwencji?
Motive: Pakiet dodaje właściwość user.session.email - ale mam sprawdzić, czy e-mail nie istnieje, a nie w sesji, choć sesja może być nieistniejący.
Aktualizacja: Wiele odpowiedzi powiedzieć użyć operatora & & do zwarcia. Jestem świadomy, że jest to możliwe rozwiązanie, ale nie jest to dokładnie to, co jest pożądane, ponieważ wygląda na to, że pracujemy nad składnią obiektu JS ARO - to znaczy, chociaż chcemy naprawdę sprawdzić właściwość obiektu, jesteś zmuszony sprawdzić, czy obiekt istnieje, aby to zrobić.
Uwaga na oznaczenie jako zamknięte Dlaczego to oznaczono jako zamknięte? Link, który zakłada, że jest to duplikat, może nie dać takich samych odpowiedzi. Szukamy lepszego, bardziej semantycznego rozwiązania i oznaczenia tych zamkniętych założeń "zagnieżdżonych" === "potencjalnie niezdefiniowanych"?
Nie byłby to błąd składniowy, byłby to ReferenceError. Możesz sprawdzić "obj && obj.prop". – Xufox
Czy zmienna 'obj' z pewnością będzie istnieć, ale może mieć wartość' undefined'? Nawiasem mówiąc, testowanie 'if (obj.prop)' nie sprawdza czy właściwość istnieje, testuje czy właściwość istnieje * i * ma wartość truey. – nnnnnn
Ah - poprawiony opis pytania, ale pytanie pozostaje nadal ważne, ponieważ zasadniczo sprawdzasz, czy istnieje zarówno obiekt, jak i własność, gdy próbuję tylko naprawdę sprawdzić, czy właściwość istnieje. – steviejay