オブジェクトのプロパティを使用するときにエラーをスローするにはどうすればよいですか?

WBOY
リリース: 2023-08-26 08:13:11
転載
571 人が閲覧しました

オブジェクトのプロパティを使用するときにエラーをスローするにはどうすればよいですか?

JavaScript では、オブジェクトにはキーと値の形式のプロパティが含まれます。オブジェクトを参照として取得することで、プロパティ名を使用してオブジェクトの任意のプロパティにアクセスできます。

時々、オブジェクトに存在しないオブジェクト プロパティにアクセスしようとすることがあります。この場合、未定義の値が得られます。次の例を通してそれを理解してみましょう。

例 (オブジェクトのプロパティへのアクセス)

以下の例では、オブジェクトを作成し、いくつかのプロパティを追加します。さらに、ネストされたプロパティをいくつか追加しました。その後、「prop4」のネストされたプロパティである「prop5」プロパティへのアクセスを試みます。ユーザーは出力でその値を確認できます。

さらに、「prop6」プロパティにアクセスしようとしましたが、オブジェクト内に存在しないため、オブジェクトは未定義を返します。

リーリー

したがって、オブジェクトにプロパティが存在しない場合は、そのプロパティがオブジェクトに存在しないことを示すエラーをスローできます。

ここでは、オブジェクトのプロパティにアクセスするときにエラーをスローする別の方法を学びます。

「in」演算子を使用すると、オブジェクトのプロパティにアクセスするときにエラーが発生します

「in」演算子を使用すると、オブジェクトにプロパティが存在するかどうかを確認できます。 「in」演算子の左側のオペランドとしてキーを使用し、右側のオペランドとしてオブジェクトを使用できます。

属性がオブジェクトに存在するかどうかを確認できます。そうでない場合は、エラーをスローすることができます。

###文法###

ユーザーは、次の構文に従って「in」演算子を使用して、オブジェクトのプロパティにアクセスするときにエラーをスローできます。

リーリー

上記の構文で、 key はオブジェクト内に存在するかどうかを確認するために使用されるプロパティです。

###例###

以下の例では、table_obj オブジェクトを作成し、いくつかのキーと値のペアを追加します。 get_property_value() という名前の関数は、プロパティがオブジェクトに存在するかどうかを確認します。オブジェクト内にプロパティが存在する場合は、プロパティ値が返されます。それ以外の場合は、エラーがスローされます。

try-catch ブロックでエラーをキャッチします。出力では、get_property_value() 関数が「table_price1」プロパティに対して未定義の値を返すのではなく、エラーをスローしていることがわかります。

リーリー

defineProperty() メソッドを使用してオブジェクト プロパティにアクセスするとエラーがスローされる

Javascript のdefineProperty() メソッドを使用すると、オブジェクトにプロパティを追加できます。エラーをスローするプロパティ記述子のゲッターを追加できます。

###文法###

ユーザーは、次の構文に従ってdefineProperty() メソッドを使用して、オブジェクトのプロパティにアクセスするときにエラーをスローできます。

リーリー

上記の構文では、defineProperty() メソッドの 3 番目のパラメーターとして記述子を渡します。オブジェクトの特定のプロパティの記述子関数からエラーをスローすることがあります。

パラメータ

Obj_name

- これは、オブジェクトに属性が追加されるオブジェクト名です。

  • Prop_name - これは、オブジェクトに追加されるプロパティの名前です。

  • { get: () => { } } - オブジェクト プロパティのゲッター関数です。

  • ###例###

    以下の例では、プロパティをまったく持たない empty_obj オブジェクトを作成します。プロパティを追加するには、defineProperties() メソッドを使用します。記述子として、エラーをスローしてエラー メッセージを表示する get() メソッドを追加しました。 出力では、「prop1」プロパティにアクセスしようとするとエラーがスローされることがわかります。

    リーリー
  • Proxy() コンストラクターを使用してオブジェクトのプロパティにアクセスするとエラーが発生する

Proxy() コンストラクターを使用すると、オブジェクトのプロキシを作成し、ゲッターやセッターなどのオブジェクトのすべての記述子をオーバーライドできます。ここで getters() をオーバーライドし、エラーをスローできる新しい関数を作成できます。

###文法###

ユーザーは、次の構文を使用して Proxy() コンストラクターを使用し、オブジェクト プロパティにアクセスするときにエラーをスローできます。

リーリー

上記の構文では、target_obj はプロキシが作成されるオブジェクトです。 get() メソッドを含むオブジェクトを 2 番目のパラメーターとして渡しました。 get() メソッドでは、オブジェクトのプロパティを検証し、オブジェクトのプロパティが無効な場合はエラーをスローできます。

###例###

次の例では、Proxy() コンストラクターを使用して、targetObj オブジェクトのプロキシを作成します。プロキシを作成するときに、ユーザーが「prop5」プロパティにアクセスしたかどうかを確認します。そうでない場合は、常にエラーがスローされます。これは、「prop5」プロパティにはオブジェクトからのみアクセスできることを意味します。ただし、「prop5」プロパティはオブジェクト内でまだ定義されていないため、未定義の値が返されます。

ああああ

以上がオブジェクトのプロパティを使用するときにエラーをスローするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート