JavaScript での変数を使用した動的プロパティ アクセス
JavaScript では、変数を使用してオブジェクト プロパティに動的にアクセスすると、課題が生じる可能性があります。次のシナリオを考えてみましょう:
var myObj; myObj.prop = "exists"; var myProp = "p"+"r"+"o"+"p"; if(myObj.myProp){ alert("yes, i have that property"); };
この例では、prop プロパティが myObj オブジェクトに存在するかどうかを確認したいと考えています。ただし、条件 myObj.myProp は、実際には存在しないプロパティ (myObj.myProp) の存在をチェックしているため、未定義と評価されます。
プロパティに正しくアクセスするには、次の手法を使用できます。
1. hasOwnProperty メソッド:
hasOwnProperty メソッドは、オブジェクトが独自のプロパティ リストに特定のプロパティを持っているかどうかを確認します (継承されたプロパティを除く)。
var myProp = 'prop'; if(myObj.hasOwnProperty(myProp)){ alert("yes, i have that property"); }
2. in 演算子:
in 演算子は、継承されたプロパティを含む指定されたプロパティがオブジェクトにあるかどうかを確認します。
var myProp = 'prop'; if(myProp in myObj){ alert("yes, i have that property"); }
3.省略表記:
プロパティ名が文字列リテラルの場合、省略表記を使用できます:
if('prop' in myObj){ alert("yes, i have that property"); }
重要な注意事項:
以上がJavaScript の変数を使用してオブジェクトのプロパティに動的にアクセスする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。