1. js schützt hasOwnProperty nicht vor unrechtmäßiger Belegung. Wenn ein Objekt diese Eigenschaft zufällig besitzt, müssen Sie eine externe hasOwnProperty-Funktion verwenden, um das richtige Ergebnis zu erhalten. 2. Um zu überprüfen, ob eine Eigenschaft für ein Objekt vorhanden ist, ist „hasOwnProperty“ die einzige verfügbare Methode. Beispielevar foo = { hatEigeneEigenschaft: function() { gibt false zurück; }, Bar: „Hier sind Drachen“ }; foo.hasOwnProperty('bar'); // gibt immer false zurück //Verwende hasOwnProperty eines anderen Objekts und setze seinen Kontext auf foo ({}).hasOwnProperty.call(foo, 'bar'); // wahr Wissenspunkterweiterung: Ermitteln Sie, ob das Attribut vorhanden istvar o = neues Objekt(); o.prop = "existiert"; Funktion changeO() { o.neueprop = o.prop; o.prop löschen; } o.hasOwnProperty('prop'); // wahr ändernO(); o.hasOwnProperty('prop'); // falsch Eigene Attribute und geerbte Attribute bestimmenFunktion foo() { dieser.name = "foo" dies.sayHi = Funktion () { console.log('Sag Hallo') } } foo.prototype.sayGoodBy = Funktion () { console.log('Sag Auf Wiedersehen') } lass myPro = neues foo() console.log(myPro.name) // foo console.log(myPro.hasOwnProperty('name')) // wahr console.log(myPro.hasOwnProperty('toString')) // falsch console.log(myPro.hasOwnProperty('hasOwnProperty')) // fehlgeschlagen console.log(myPro.hasOwnProperty('sayHi')) // wahr console.log(myPro.hasOwnProperty('sayGoodBy')) // falsch console.log('sayGoodBy' in myPro) // wahr Iterieren Sie über alle Eigenschaften eines ObjektsBeim Betrachten von Open-Source-Projekten sieht man oft Quellcode, der dem folgenden ähnelt. Die for...in-Schleife zählt alle Eigenschaften des Objekts auf und verwendet dann die Methode hasOwnProperty(), um geerbte Eigenschaften zu ignorieren. var buz = { Nebel: ‚Stapel‘ }; für (Var-Name in Buz) { wenn (buz.hasOwnProperty(name)) { alert("das ist definitiv Nebel (" + name + "). Wert: " + buz[name]); } anders { alert(name); // toString oder etwas anderes } } Beachten Sie „hasOwnProperty“ als EigenschaftsnamenJavaScript schützt den Eigenschaftsnamen hasOwnProperty nicht. Wenn es also ein Objekt mit diesem Eigenschaftsnamen geben könnte, ist es notwendig, eine erweiterte Methode hasOwnProperty zu verwenden, um das richtige Ergebnis zu erhalten: var foo = { hatEigeneEigenschaft: function() { gibt false zurück; }, Bar: „Hier sind Drachen“ }; foo.hasOwnProperty('bar'); // gibt immer false zurück // Wenn Sie diesbezüglich Bedenken haben, können Sie die echte Methode hasOwnProperty direkt in der Prototypenkette verwenden. // Verwenden Sie die Methode „hasOwnProperty“ eines anderen Objekts und rufen Sie auf ({}).hasOwnProperty.call(foo, 'bar'); // wahr // Sie können die Eigenschaft hasOwnProperty auch für den Objektprototyp verwenden. Object.prototype.hasOwnProperty.call(foo, 'bar'); // true Dies ist das Ende dieses Artikels über die Eigenschaften und Beispielverwendung von hasOwnProperty in js. Weitere Inhalte zur Verwendung der Eigenschaften von hasOwnProperty in js finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Detaillierte Erklärung der Box-Größe in CSS3 (Content-Box und Border-Box)
>>: Ist es notwendig, dem Img-Bild-Tag ein Alt-Attribut zuzuweisen?
Standardmäßig werden Breite und Höhe der Zelle au...
Inhaltsverzeichnis Beim Einrichten einer MySQL-Ma...
Inhaltsverzeichnis Legen Sie beim Erstellen einer...
Inhaltsverzeichnis Überblick console.log konsole....
Inhaltsverzeichnis 1. Arithmetische Operatoren 2....
In Bezug auf High Performance MySQL Version 3 (Ab...
Erlaube './' relative Pfade in docker-com...
In diesem Artikelbeispiel wird der spezifische Co...
Schreibgeschützte und deaktivierte Attribute in F...
Überblick Datenbanken führen im Allgemeinen mehre...
Pixel Auflösung Mit der Monitorauflösung ist eige...
Inhaltsverzeichnis 1. Bedingte Zugriffsattribute ...
Heutzutage gehört die Unterstützung von HTTPS für...
1. Hintergrund der parallelen Replikation Zunächs...
Ich möchte das Marquee-Tag verwenden, um das Scrol...