Javascript函数返回对象undefined的问题?
function checkObj(obj, checkProp) {
// Only change code below this line
if (obj.hasOwnProperty(checkProp) === true) {
return obj[checkProp];
} else {
return "Not Found";
}
// Only change code above this line
}
// Only change code above this line
console.log(checkObj({gift: "pony", pet: "kitten", bed: "sleigh"}, "gift"));
为什么返回的时候只能写成return obj[checkProp];
而不能写成return obj.checkProp;
会输出Undefined
回复
1个回答
test
2024-07-05
obj[checkProp]
表示动态获取, obj的key值是动态的, checkProp变量存的什么就是获取什么属性:比如checkProp = '12234'
那么obj[checkProp]就等价于obj.1234obj.checkProp
表示获取key为checkProp
的值, obj没有这个key, 就是undefined了:
看一些这个官方文档讲解的很清楚属性访问器
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容