为了账号安全,请及时绑定邮箱和手机立即绑定

参数不是会传递进去吗?

参数不是会传递进去吗?

暮色呼如 2018-09-14 15:10:26
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);


查看完整回答
反对 回复 2018-10-16
  • 1 回答
  • 0 关注
  • 568 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号