Heim >Web-Frontend >js-Tutorial >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.
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>
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.
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.
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 }
In der obigen Syntax ist der Schlüssel eine Eigenschaft, mit der überprüft wird, ob er im Objekt vorhanden ist.
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>
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.
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 } });
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.
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.
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>
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.
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 }, });
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.
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>
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!