Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie kann ich einen Fehler auslösen, wenn ich die Eigenschaften eines Objekts verwende?

WBOY
Freigeben: 2023-08-26 08:13:11
nach vorne
552 Leute haben es durchsucht

Wie kann ich einen Fehler auslösen, wenn ich die Eigenschaften eines Objekts verwende?

In JavaScript enthalten Objekte Eigenschaften im Schlüsselwertformat. Wir können auf jede Eigenschaft eines Objekts zugreifen, indem wir den Eigenschaftsnamen verwenden, indem wir das Objekt als Referenz nehmen.

Manchmal versuchen wir, auf Objekteigenschaften zuzugreifen, die im Objekt nicht vorhanden sind. In diesem Fall erhalten wir einen undefinierten Wert. Lassen Sie es uns anhand des folgenden Beispiels verstehen.

Beispiel (Zugriff auf Objekteigenschaften)

Im folgenden Beispiel haben wir das Objekt erstellt und einige Eigenschaften hinzugefügt. Darüber hinaus haben wir einige verschachtelte Eigenschaften hinzugefügt. Danach versuchen wir, auf die Eigenschaft „prop5“ zuzugreifen, die eine verschachtelte Eigenschaft von „prop4“ ist. Der Benutzer kann seinen Wert in der Ausgabe beobachten.

Außerdem versuchen wir, auf die Eigenschaft „prop6“ zuzugreifen, aber das Objekt gibt undefiniert zurück, da es im Objekt nicht vorhanden ist.

<html>
<body>
   <h2>Accessing the object properties in JavaScript</h2>
   <div id="content"> </div>
   <script>
      let content = document.getElementById('content');
      let object = {
         name: 'Shubham',
         prop1: 'Hello',
         prop2: 'World',
         prop3: '!',
         prop4: {
            prop5: 'This is a nested object.'
         }
      }
      content.innerHTML = "The value of prop5 is : " + object.prop4.prop5;
      content.innerHTML += "<br> The value of prop3 is : " + object.prop3;
      content.innerHTML += "<br> The value of prop6 is : " + object.prop6;
   </script>
</body>
</html>
Nach dem Login kopieren

Wenn also eine bestimmte Eigenschaft im Objekt nicht vorhanden ist, können wir eine Fehlermeldung ausgeben, die besagt, dass die Eigenschaft im Objekt nicht vorhanden ist.

Hier lernen wir eine andere Möglichkeit kennen, Fehler beim Zugriff auf Objekteigenschaften auszulösen.

Die Verwendung des „in“-Operators löst beim Zugriff auf Objekteigenschaften einen Fehler aus

Mit dem „in“-Operator können wir überprüfen, ob eine Eigenschaft in einem Objekt vorhanden ist. Wir können einen Schlüssel als linken Operanden des „in“-Operators und ein Objekt als rechten Operanden verwenden.

Wir können prüfen, ob eine Eigenschaft in einem Objekt vorhanden ist. Wenn nicht, können wir einen Fehler auslösen.

Grammatik

Benutzer können den „in“-Operator gemäß der folgenden Syntax verwenden, um beim Zugriff auf Objekteigenschaften Fehler auszulösen.

if(key in obj){
}else {
   // throw error
}
Nach dem Login kopieren

In der obigen Syntax ist der Schlüssel eine Eigenschaft, mit der überprüft wird, ob er im Objekt vorhanden ist.

Beispiel

Im folgenden Beispiel erstellen wir das table_obj-Objekt und fügen einige Schlüssel-Wert-Paare hinzu. Die Funktion get_property_value() prüft, ob die Eigenschaft im Objekt vorhanden ist. Wenn die Eigenschaft im Objekt vorhanden ist, wird der Eigenschaftswert zurückgegeben. Andernfalls wird ein Fehler ausgegeben.

Im Try-Catch-Block fangen wir einen Fehler ab. In der Ausgabe kann der Benutzer beobachten, dass die Funktion get_property_value() einen Fehler für die Eigenschaft „table_price1“ auslöst, anstatt einen undefinierten Wert für die Eigenschaft zurückzugeben.

<html>
<body>
   <h3>Using the <i> in </i> operator  to throw an error while accessing the object properties in JavaScript</h3>
   <div id = "content"> </div>
   <script>
      let content = document.getElementById('content');
      // creating an object for table details
      let table_obj = {
         table_name: "table1",
         table_type: "table",
         table_size: "10x10",
         table_color: "black",
         table_price: 1000
      }
      function get_property_value(key) {
         if (key in table_obj) {
            return table_obj[key];
         } else {
            throw new Error(key + " is not a valid property name.");
         }
      }
      try {
         content.innerHTML += "table_name : - " + get_property_value("table_name");
         content.innerHTML += "<br>" + get_property_value("table_price1");
      } catch (e) {
         content.innerHTML += "<br>" + e.message;
      }
   </script>
</body>
</html>
Nach dem Login kopieren

Beim Zugriff auf Objekteigenschaften mit der Methode defineProperty() wird ein Fehler ausgegeben

Mit der Methode defineProperty() von Javascript können wir Objekten Eigenschaften hinzufügen. Wir können Getter für Eigenschaftsdeskriptoren hinzufügen, die Fehler auslösen.

Grammatik

Benutzer können die Methode defineProperty() gemäß der folgenden Syntax verwenden, um beim Zugriff auf Objekteigenschaften Fehler auszulösen.

Object.defineProperty(obj_name, 'prop_name', {
   get: () => {
      // throw an error
   }
});
Nach dem Login kopieren

In der obigen Syntax übergeben wir den Deskriptor als dritten Parameter der Methode defineProperty(). Wir können Fehler aus der Deskriptorfunktion einer bestimmten Eigenschaft eines Objekts auslösen.

Parameter

  • Obj_name – Dies ist der Objektname, um dem Objekt Eigenschaften hinzuzufügen.

  • Prop_name – Dies ist der Name der Eigenschaft, die dem Objekt hinzugefügt werden soll.

  • { get: () => { } } – Es ist die Getter-Funktion für Objekteigenschaften.

Beispiel

Im folgenden Beispiel erstellen wir ein empty_obj-Objekt mit null Eigenschaften. Wir verwenden die Methode defineProperties(), um Eigenschaften hinzuzufügen. Als Deskriptor haben wir die Methode get() hinzugefügt, die einen Fehler auslöst und eine Fehlermeldung anzeigt.

In der Ausgabe kann der Benutzer beobachten, dass beim Versuch, auf die Eigenschaft „prop1“ zuzugreifen, ein Fehler ausgegeben wird.

<html>
<body>
   <h3>Using the <i> defineProperty() </i> method to throw an error while accessing the object properties in JavaScript </h3>
   <div id = "content"> </div>
   <script>
      let content = document.getElementById('content');
      let empty_obj = {};
      Object.defineProperty(empty_obj, 'prop1', {
         get: () => {
            throw new Error('You cannot access prop1 property');
         }
      });
      try {
         content.innerHTML = "The value of prop1 property in the empty object is " + empty_obj.prop1;
      }
      catch (err) {
         content.innerHTML = "The error is : - " + err;
      }
   </script>
</body>
</html>
Nach dem Login kopieren

Die Verwendung des Proxy()-Konstruktors beim Zugriff auf Objekteigenschaften löst einen Fehler aus

Mit dem Konstruktor

Proxy() können wir einen Proxy für ein Objekt erstellen und alle Deskriptoren des Objekts, wie Getter und Setter, überschreiben. Hier können wir getters() überschreiben und eine neue Funktion schreiben, die Fehler auslösen kann.

Grammatik

Benutzer können die folgende Syntax verwenden, um den Proxy()-Konstruktor zu verwenden, um beim Zugriff auf Objekteigenschaften Fehler auszulösen.

let proxy_obj = new Proxy(target_Obj, {
   get: function (target, prop) {
      // throw error
   },
});
Nach dem Login kopieren

In der obigen Syntax ist target_obj ein Objekt, für das ein Proxy erstellt wird. Als zweiten Parameter haben wir das Objekt übergeben, das die Methode get() enthält. In der Methode get() können wir die Objekteigenschaften validieren und einen Fehler auslösen, wenn die Objekteigenschaften ungültig sind.

Beispiel

Im folgenden Beispiel erstellen wir mithilfe des Proxy()-Konstruktors einen Proxy des targetObj-Objekts. Beim Erstellen des Proxys prüfen wir, ob der Benutzer auf die Eigenschaft „prop5“ zugegriffen hat. Wenn nicht, geben wir immer einen Fehler aus. Dies bedeutet, dass auf die Eigenschaft „prop5“ nur vom Objekt aus zugegriffen werden kann. Es wird jedoch ein undefinierter Wert für die Eigenschaft „prop5“ zurückgegeben, da wir ihn noch nicht im Objekt definiert haben.

<html>
<body>
   <h3>Using the <i> defineProperty() </i> method to throw an error while accessing the object properties in JavaScript </h3>
   <div id = "content"> </div>
   <script>
      let content = document.getElementById('content');
      let targetObj = {
         prop1: 'Hello',
      }
      let proxy_obj = new Proxy(targetObj, {
         get: function (target, prop) {
            if (prop != 'prop5') {
               throw new Error('You are only allowed to access prop5');
            }
         },
      });
      try {
         content.innerHTML += "The value of prop1 is: " + proxy_obj.prop1 + "<br>";
      } catch (e) {
         content.innerHTML += "The error is - " + e + "<br>";
      }
   </script>
</body>
</html>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich einen Fehler auslösen, wenn ich die Eigenschaften eines Objekts verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!