// Objekt vergiften. // 1'bar 'in foo; // truefoo.hasownProperty ('Bar'); // falsefoo.hasownProperty ('Goo'); // WAHRHier kann nur HasownProperty die richtige Antwort geben, was sehr notwendig ist, wenn es darum geht, die Eigenschaften eines Objekts zu durchqueren. Es gibt keinen anderen Weg in JavaScript, um festzustellen, ob ein Attribut im Objekt selbst definiert oder aus der Prototypkette geerbt wird.
HasownProperty als Eigentum
JavaScript setzt HasownProperty nicht als sensibles Wort, was bedeutet, dass Sie eine Eigenschaft namens HasownProperty haben können. Zu diesem Zeitpunkt können Sie Ihre HasownProperty -Methode nicht mehr anwenden, um Eigenschaften zu beurteilen. Sie müssen daher die externe HasownProperty -Methode verwenden, um Urteile zu fällen.
var foo = {hasownProperty: function () {return false; }, Bar: 'Hier be Dragons'}; foo.hasownProperty ('Bar'); // Gibt immer false zurück // Verwenden Sie das HasownProperty eines anderen Objekts und rufen Sie es mit 'this' auf foo ({}) an. // true // Es ist auch möglich, HasownProperty aus dem Objekt // Prototype für diesen powersObject.prototype.hasownProperty.call (foo, 'bar') zu verwenden. // WAHRZusammenfassen
Bei der Beurteilung, dass das Objektattribut existiert, ist HasownProperty die einzige Methode, auf die sich stützt werden kann. Hier möchten wir Sie auch daran erinnern, dass bei Verwendung von Objekten die Verwendung von HasownProperty, wenn wir in der Schleife verwendet werden, die durch Prototypobjektverlängerungen verursachten Probleme vermeiden können.
Im Folgenden finden Sie die Ergänzungen anderer Internetnutzer:
HasownProperty () im Objekt -Objektprototyp in JavaScript wird verwendet, um festzustellen, dass eine Eigenschaft eher im Objekt selbst definiert als aus der Prototypkette geerbt wird.
Obj.hasownProperty (Prop)
Parameterprop
Der zu erkennende Attributzeichenname oder Symbol (ES6)
o = neues Objekt (); O.Prop = 'existiert'; o.hasownProperty ('prop'); // return truo.hasownProperty ('toString'); // return leseo.hasownProperty ('HasownProperty'); // false zurückgebenVerwenden Sie HasownProperty als Eigenschaftsname eines Objekts
Da JavaScript HasownProperty nicht als sensibles Wort verwendet, ist es sehr wahrscheinlich, dass wir eine Eigenschaft des Objekts als HasownProperty nennen, damit wir die HasownProperty -Methode des Objektprototyps nicht mehr verwenden können, um festzustellen, ob die Eigenschaft aus der Prototyp -Kette stammt.
var foo = {hasownProperty: function () {return false; }, Bar: 'Hier be Dragons'}; foo.hasownProperty ('Bar'); // immer falsch zurückgebenWie löst ich dieses Problem, indem Sie dieses Objekt nicht verwenden. HasownProperty Methode? Wir müssen die echte HasownProperty -Methode für die Prototyp -Kette verwenden:
({}). hasownProperty.call (foo, 'bar'); // true // oder: Object.Prototype.hasownProperty.call (foo, 'bar'); // WAHRReferenz: https://developer.mozilla.org/zh-cn/docs/web/javascript/reference/global_objects/object/hasownproperty