Javascript函数返回对象undefined的问题?

作者站长头像
站长
· 阅读数 4
    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个回答
avatar
test
2024-07-05

obj[checkProp]表示动态获取, obj的key值是动态的, checkProp变量存的什么就是获取什么属性:比如checkProp = '12234'那么obj[checkProp]就等价于obj.1234obj.checkProp表示获取key为checkProp的值, obj没有这个key, 就是undefined了:

看一些这个官方文档讲解的很清楚属性访问器

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容