1. ホーム
  2. javascript

[解決済み] オブジェクトのプロパティが存在するかどうかを、プロパティ名を持つ変数で確認するには?

2022-03-24 12:38:53

質問

オブジェクトのプロパティが存在するかどうかを、当該プロパティ名を保持する変数でチェックしています。

var myObj;
myObj.prop = "exists";
var myProp = "p"+"r"+"o"+"p";

if(myObj.myProp){
    alert("yes, i have that property");
};

これは undefined を探しているからです。 myObj.myProp をチェックしたいのですが myObj.prop

どのように解決するのですか?

var myProp = 'prop';
if(myObj.hasOwnProperty(myProp)){
    alert("yes, i have that property");
}

または

var myProp = 'prop';
if(myProp in myObj){
    alert("yes, i have that property");
}

または

if('prop' in myObj){
    alert("yes, i have that property");
}

なお hasOwnProperty は継承されたプロパティをチェックしないのに対して in があります。 例えば 'constructor' in myObj は真であるが myObj.hasOwnProperty('constructor') はありません。