Zwei Möglichkeiten, aber etwas anders
1. im Betreiber
Kopieren Sie den Codecode wie folgt:
var obj = {name:'jack'};
alarm('name' in obj); // --> true
alarm('toString' in obj); // --> true
Es ist ersichtlich, dass sowohl name als auch toString in der Prototypenkette erkannt werden können und true zurückgeben.
2. hasOwnProperty-Methode
Kopieren Sie den Codecode wie folgt:
var obj = {name:'jack'};
obj.hasOwnProperty('name'); // --> true
obj.hasOwnProperty('toString'); // --> false
Von der Prototypenkette geerbte Eigenschaften können von hasOwnProperty nicht erkannt werden und es wird „false“ zurückgegeben.
Es ist zu beachten, dass in die Eigenschaften der Prototypenkette zwar erkannt werden können, in der Regel jedoch nicht.
Natürlich wird er nach dem Umschreiben des Prototyps unter IE9/Firefox/Safari/Chrome/Opera sichtbar sein. Siehe: Fallstricke von for in