javascript - 参数不是会传递进去吗?
本文介绍了javascript - 参数不是会传递进去吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
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才会被当做变量看待。
function updateRecords(id, prop, value) {
if(prop !== "tracks" && value !== ""){
collection[id][prop]=value;//同id
}
return collection;
}
updateRecords(5439, "artist", "ABBA");
console.log(collection);
这篇关于javascript - 参数不是会传递进去吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文