JavaScript では、変数を使用してオブジェクト プロパティの存在を確認することが一般的なタスクになることがあります。ただし、変数をプロパティ名として直接使用すると、未定義の結果が生じます。
例:
<code class="js">var myObj; myObj.prop = "exists"; var myProp = "p" + "r" + "o" + "p"; if (myObj.myProp) { alert("yes, i have that property"); }; // Undefined</code>
これを解決するには、プロパティを明示的にチェックするメソッドを利用する必要があります。
解決策:
オプション 1: hasOwnProperty
<code class="js">var myProp = 'prop'; if (myObj.hasOwnProperty(myProp)) { alert("yes, i have that property"); }</code>
オプション 2: in 演算子 (直接プロパティと継承プロパティの両方をチェックします)
<code class="js">var myProp = 'prop'; if (myProp in myObj) { alert("yes, i have that property"); }</code>
オプション 3: 演算子の直接使用 (直接プロパティのみをチェックします)
<code class="js">if ('prop' in myObj) { alert("yes, i have that property"); }</code>
注: hasOwnProperty は継承されたプロパティをチェックしませんが、in 演算子はチェックします。
以上がJavaScript で変数を使用してオブジェクト プロパティの存在を確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。