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";
这是啥JS动态语言的特点,无需声明,就可以为对象添加属性,你使用
object.prop=value
时,就是为object对象添加了prop属性和对应的value值,在动态设置属性时,js提供了很简洁的方案object[prop]=value
;这时prop才会被当做变量看待。