我想获得obj[key_name]
(注意,key_name没有引号!):
function myfunc(name){
obj = {'key_name': 'hello', key_name: 'world' };
return obj[name];
}
//myfunc("key_name"); // <--------- this returns obj["key_name"], instead of obj[key_name]
//myfunc(key_name); // <--------- error. key_name is undefined
alert(myfunc("key_name"));
如何处理?
答案 0 :(得分:2)
您不能在对象内两次使用相同的密钥。物业
'key_name'
与
完全相同key_name
所以第二个声明将覆盖第一个声明。
DEMO(foo将有1个属性 - 所以键数组长度为1):
let foo = {
key_name: 'foo',
"key_name": 'bar',
'key_name': 'baz'
}
console.log(Object.keys(foo).length); // 1
console.log(foo.key_name); // baz
&#13;
答案 1 :(得分:0)
您的代码已经在运行:
function myfunc(name){
obj = {key_name:"blah"};
return obj[name];
}
console.log(myfunc("key_name")); // shows "blah"
&#13;