Ob ein JS-Objekt ein bestimmtes Attribut hat
Zwei Möglichkeiten, aber etwas unterschiedlich
1, im Operator
var obj = {name:'jack'}; alert('name' in obj); // --> true alert('toString' in obj); // --> true
Sie können sehen, dass unabhängig davon, ob es sich um name oder toString in der Prototypenkette handelt, erkannt werden kann, dass true zurückgegeben wird.
2. Die hasOwnProperty-Methode
var obj = {name:'jack'}; obj.hasOwnProperty('name'); // --> true obj.hasOwnProperty('toString'); // --> false
Die von der Prototypenkette geerbten Eigenschaften können von hasOwnProperty nicht erkannt werden und geben „false“ zurück.
Es ist zu beachten, dass in zwar die Eigenschaften der Prototypenkette erkennen kann, in der Regel jedoch nicht möglich ist.
Natürlich nach dem Umschreiben des Prototyps, denn in ist unter IE9/Firefox/Safari/Chrome/Opera sichtbar. Siehe: Mängel von for in
Vielen Dank fürs Lesen, ich hoffe, es kann allen helfen, vielen Dank für Ihre Unterstützung dieser Website!
Weitere verwandte Artikel zum Ermitteln, ob ein JS-Objekt ein bestimmtes Attribut hat, finden Sie auf der chinesischen PHP-Website!