javascript - 参数不是会传递进去吗?
ringa_lee
ringa_lee 2017-04-11 13:05:32
[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";

ringa_lee
ringa_lee

ringa_lee

全部回复(3)
迷茫

这是啥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);
怪我咯

object[prop]=value与object.prop=value的区别

ringa_lee

var a = 'A'
var obj = {}
obj.a = 'A'

obj.A = ?

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号