参数不是会传递进去吗?

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";


暮色呼如
浏览 569回答 1
1回答

一只萌萌小番薯

这是啥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);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript