Hoe controleer ik of een object een bepaalde eigenschap heeft in JavaScript?
Hoe controleer ik of een object een bepaalde eigenschap heeft in JavaScript?
Denk eens na:
x = {'key': 1};
if ( x.hasOwnProperty('key') ) {
//Do this
}
Is dat de beste manier om het te doen?
1386
3
Armin Ronacher heeft me blijkbaar al voor, maar:
Een veiliger, maar langzamere oplossing, zoals aangegeven door Konrad Rudolph en Armin Ronacher zou zijn:
Ja dat is zo :) Ik denk dat je ook
Object.prototype.hasOwnProperty.call(x, 'key')
kunt doen, wat ook zou moeten werken alsx
een eigenschap genaamdhasOwnProperty
heeft :)Maar dat test op eigen eigenschappen. Als je wilt controleren of het een eigenschap heeft die ook geërfd kan worden kun je
typeof x.foo != 'undefined'
gebruiken.OK, het lijkt erop dat ik het juiste antwoord had, tenzij je geen geërfde eigenschappen wilt:
Hier zijn enkele andere opties om geërfde eigenschappen op te nemen: