You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修正getValue()函数以正确获取对象指定键对应的值?

修复getValue()函数的属性获取问题

嘿,我看到你写的getValue()函数遇到了问题——现在调用它返回undefined,但你期望返回对象里的'my_value'对吧?问题出在你访问对象属性的方式上,还有一些多余的代码可以简化掉。

问题所在

你在函数里用了obj.key,这是JavaScript里的点表示法,它只会去查找对象中字面量叫做key的属性,而不是你传入的参数key的实际值(比如这里的'nokey')。另外,函数里的this.obj = {}、this.key = obj.key还有嵌套的val函数都是完全没必要的,反而把逻辑搞复杂了。

修正方案

要通过变量名来访问对象属性,你需要用方括号表示法:obj[key],这样JavaScript就会把key当成变量,用它的值去查找对象对应的属性。同时我们可以把函数简化到极致:

function getValue(obj, key) {
  // 直接返回变量key对应的属性值,不存在的话自动返回undefined
  return obj[key];
}

var theObject = {nokey: 'my_value'};
var output = getValue(theObject, 'nokey');
console.log(output); // 现在会正确输出'my_value'

这样修改后,不管你传入什么属性名作为key参数,函数都能正确找到对应的属性值;如果属性不存在,也会按照需求返回undefined。

内容的提问来源于stack exchange,提问作者davedub

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:12:45