当前位置: 首页 > 知识库问答 >
问题:

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

戚俊美
2023-04-20
    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

共有5个答案

晁开宇
2023-04-20

obj.checkPropobj["checkProp"] ,而不是 obj[checkProp]

钱星华
2023-04-20

checkProp是变量名

  • 放到[]内时会解析变量对应的值,然后根据值去找对应的数据
  • 放到.后面时不用解析它的值,直接根据名字取找对应的数据
伊俊能
2023-04-20

这个应该看的懂把!

let obj = { 'a':1 };
let checkProp = 'a';
obj[checkProp] // 1
obj.checkProp //undefined
漆雕唯
2023-04-20

obj.checkProp是指获取obj的checkProp属性,checkProp表示具体属性,但这里checkProp应该是一个变量,是obj上的动态属性

施招
2023-04-20

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

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

 类似资料:
  • js Promise 返回数组但无法使用 该如何返回结果呢? 在这里打印e,可以看到是个数组,但e.length显示就是0;而且直接使用e[0]就是undefined

  • 问题内容: 我有一个发出AJAX调用的功能(通过jQuery)。在本节中,我有一个函数说: 但是,如果我这样称呼它: 第一个永远不会被调用。 如果将an 放入函数中,则为true,但在该函数返回之前不会为true 。 可以将回调函数传递给我的方法吗?喜欢: 问题答案: 是一个 回调 函数。它将由Ajax对象调用-异步!-操作完成时。您无法捕捉回调的结果,只有Ajax对象可以做到这一点。 您的函数-

  • 问题内容: 从箭头函数返回对象时,由于语法上的歧义,似乎有必要使用额外的和关键字集。 那意味着我不会写,但必须写。 如果arrow函数返回的不是对象,则和都是不必要的,例如:。 返回。 修饰符抛出 “::意外标记:‘”。 有什么明显的我想念的吗? 问题答案: 您必须将返回的对象文字包装在括号中。否则,花括号将被视为表示功能的主体。以下作品: 您不需要将任何其他表达式包装到括号中: 等等。

  • 问题内容: 我在返回查询时遇到了几个问题。 在这里,我想做的是: 我在不同的帖子上看到了回调函数,但是它不适用于我想做的事情。 问题答案: 我在不同的帖子上看到了回调函数,但是它不适用于我想做的事情。 是的,您只需要更改对代码的思考方式即可。与其编写,不如编写一个名为的函数: 然后,而不是这样写: 您可以这样写: 现在,您可能会问自己,在那之后还有其他事情吗?好吧,您需要修改函数使其行为类似于和而

  • 问题内容: 我有一个javascript对象(实际上是通过ajax请求获取数据的): 我已经添加了一些东西: 现在,我要删除状态无效的所有对象(但保持所有顺序相同): 在我看来,所有这些都应该起作用,但是我收到的错误不是函数。我知道为什么它与数组不一样,但是我该怎么办? 问题答案: 适用于数组,而不是对象,因此请使用正确的数据结构。

  • 问题描述 如下图所示,我分别打印了ObjectFood和ObjectFood[1001] 但是输出结果如下图所示 后续尝试了 这两种方法均是undefined,求各位帮忙解惑