プロパティ名変数を使用してオブジェクト プロパティの存在を効果的に調べる方法
JavaScript オブジェクトを操作する場合、特定のプロパティが存在するかどうかを判断することが重要です。ただし、ターゲット プロパティ名を保持するために変数を利用する必要がある場合はどうすればよいでしょうか?
提供された例では:
<code class="js">var myObj; myObj.prop = "exists"; var myProp = "p"+"r"+"o"+"p"; if(myObj.myProp){ alert("yes, i have that property"); };</code>
コードは ' という名前のプロパティの存在を確認しようとします。 myprop' は存在しません。これは、JavaScript が式を「myObj.prop」ではなく「myObj.myprop」として評価するためです。
このロジックを正常に実装するには、いくつかのアプローチを利用できます。
hasOwnProperty の使用
<code class="js">var myProp = 'prop'; if(myObj.hasOwnProperty(myProp)){ alert("yes, i have that property"); }</code>
hasOwnProperty は、継承されたプロパティを除き、オブジェクトが特定のプロパティを所有しているかどうかを検証します。
オペレーターでの使用 (ES5)
<code class="js">var myProp = 'prop'; if(myProp in myObj){ alert("yes, i have that property"); }</code>
in 演算子は、独自のプロパティと継承されたプロパティの両方を含むオブジェクトの列挙可能なプロパティを調べます。
角かっこの使用 (ES6)
<code class="js">if('prop' in myObj){ alert("yes, i have that property"); }</code>
ES6 では、角かっこプロパティの存在チェックのために in 演算子と同じ意味で使用できます。
以上がJavaScript オブジェクトで変数プロパティ名を使用してプロパティの存在を確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。