var collection = { "5439": { "album": "ABBA Gold" }};function updateRecords(id, prop, value) { if(prop !== "tracks" && value !== ""){ collection[id].prop=value; } return collection;}updateRecords(5439, "artist", "ABBA");为何结果是 Object { album="ABBA Gold", prop="ABBA"} 不是 Object { album="ABBA Gold",artist="ABBA"} ?在运行到这里的时候 collection[id].prop=value; prop的值artist,因该会代入,id的值5439也代入形成collection[id].prop=value;因该是 collection[9439].artist="ABBA";
1 回答

一只萌萌小番薯
TA贡献1795条经验 获得超7个赞
这是啥JS动态语言的特点,无需声明,就可以为对象添加属性,你使用object.prop=value
时,就是为object对象添加了prop属性和对应的value值,在动态设置属性时,js提供了很简洁的方案object[prop]=value
;这时prop才会被当做变量看待。
function updateRecords(id, prop, value) {
if(prop !== "tracks" && value !== ""){
collection[id][prop]=value;//同id
}
return collection;
}
updateRecords(5439, "artist", "ABBA");
console.log(collection);
添加回答
举报
0/150
提交
取消