小编典典

如何使用包含属性名称的变量检查对象属性是否存在?

all

我正在检查一个对象属性是否存在,其中一个变量包含有问题的属性名称。

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


阅读 93

收藏
2022-03-02

共1个答案

小编典典

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')不是。

2022-03-02