It’s #FrontendFriday – JavaScript Insights: hasOwnProperty vs. hasOwnProperty.call

24.02.2023

Hallo #FrontendFriday-Leser/in,

ihr habt euch schon immer gefragt wie die Object.prototype.hasOwnProperty Methode Null sicherer gemacht werden kann. Dann ist der folgende Beitrag genau das richtige für euch.

 

Im JavaScript Universum existieren mehrere Möglichkeiten der Prüfung einer Existenz eines Property innerhalb eines Objektes. Eine gängige ist die Verwendung der hasOwnPropterty Methode. Das folgende Bild zeigt eine beispielhafte Verwendung. Wie wir sehen können, funktioniert die normale Variante auch für Null Properties.

 

 

Die Syntax im oberen Beispiel ist sehr einfach. Ein Objekt definieren und die Methode mit dem Property aufrufen, welches überprüft werden soll. Aber habt ihr schon mal gefragt, warum beispielsweise Webpack die hasOwnProperty.call Variante beim Bundeln nutzt. Der Grund hierfür ist sehr einfach: die gängige hasOwnPropterty Methode ist nicht Null sicher! Folgend der Beweis:

 

 

Im JavaScript kann man auch ein Objekt ohne prototypische Vererbung Nutzen. Im solchen Fall wird ein Fehler in der Konsole geworfen. Was sehr unschön ist! Durch die Verwendung hasOwnProperty.call müsste sich das Problem in Luft auflösen. Schauen wir uns das Ganze in einem weiteren Beispiel an.

 

 

Wir sehen kein Fehler mehr. Ja, es ist ein absoluter Randfall. Aber warum nicht die zusätzliche Sicherheit von vornherein in Anspruch nehmen?

 

Die Webfrontend FG wünscht euch ein wunderschönes Wochenende, möge der Code mit euch sein.

 

Zurück zur Übersicht

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*Pflichtfelder

*