我不敢相信以前没有人问过这个问题,但我尽可能多地搜索但找不到它,所以就在这里。
我想测试动态构建的 JavaScript 对象是否存在。然而,当我测试这个时:
var myObject = {};
var dynamicName = "customName";
if(myObject[dynamicName].object == undefined){
myObject[dynamicName].object = "something"; // Make an entry in the dynamic object
alert("The object didn't exist, so we populated it");
}else{
alert("The object already exist");
}
如果该对象不存在,并且我尝试运行上述代码,则会收到错误消息“myObject[dynamicName] 未定义”,并且所有 javascript 执行都会停止。
有没有办法检查这个对象是否存在我想要的而不导致这样的错误?
最佳答案
如果 myObject[dynamicName]
不存在,则无法访问其属性。尝试访问或分配未定义
的属性会导致错误。
您需要创建对象,然后才能创建属性
if (myObject && myObject[dynamicName] && myObject[dynamicName].object !== undefined) {
alert("The object already exists");
} else {
myObject = myObject || {};
myObject[dynamicName] = myObject[dynamicName] || {};
myObject[dynamicName].object = something;
alert("The object didn't exist, so we populated it");
}
关于javascript - 测试对象是否存在 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51530139/