2016-09-01 3 views
0

Ich habe diese Funktion:Wie überprüft man, ob das Objekt JavaScript besitzt?

 function ddd(object) { 
     if (object.id !== null) { 
      //do something... 
     } 
    } 

Aber ich bekomme diese Fehlermeldung:

Cannot read property 'id' of null 

Wie kann ich überprüfen, ob Objekt-Eigenschaft hat und den Wert der Eigenschaft zu überprüfen ??

+1

Sie können 'if (object.property)' oder 'if (object.hasOwnProperty ('property'))' –

+2

Versuchen Sie 'if (typeof (object.id)! == 'undefined')' –

+0

verwenden ' obj.hasOwnProperty ("id") ' – vkstack

Antwort

6

hasOwnProperty ist die Methode, die Sie für

if (object.hasOwnProperty('id')) { 
    // do stuff 
} 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty

Als Alternative suchen, ist so etwas wie zu tun:

if (typeof object.id !== 'undefined') { 
    // note that the variable is defined, but could still be 'null' 
} 

In diesem speziellen Fall ist der Fehler, den Sie Sehen bedeutet, dass object ist Null, nicht id so vorsichtig sein dieses Szenario.

Zum Testen von umständlich tief verschachtelten Eigenschaften verschiedener Dinge verwende ich brototype.

+0

Mein Linter sagt, das ist veraltet. Gibt es einen anderen Weg, damit umzugehen? Reagieren verwenden – wuno

+0

es ist schneller zu tun 'if (object.id) {// tu stuff}' aber das hat Probleme, wenn 'object.id' ist' false' oder '0' – deltree

Verwandte Themen