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

javascript 特性

javascript 特性

HUWWW 2018-12-19 18:19:20
按照js按值传递res[obj.category].bytes = '修改'应该是不会修改__array里面的值才对,但是res.__array.push(res[obj.category] = obj);使用这种赋值方式,修改res[obj.category].bytes值__array里面的值会一起变更。这要理解成java的引用类型吗?var dataObject=[  { "category" : "Search Engines", "hits" : 5, "bytes" : 50189 }, { "category" : "Content Server", "hits" : 1, "bytes" : 17308 }, { "category" : "Content Server", "hits" : 1, "bytes" : 47412 }, { "category" : "Search Engines", "hits" : 1, "bytes" : 7601 }, { "category" : "Business", "hits" : 1, "bytes" : 2847 }, { "category" : "Content Server", "hits" : 1, "bytes" : 24210 }, { "category" : "Internet Services", "hits" : 1, "bytes" : 3690 }, { "category" : "Search Engines", "hits" : 6, "bytes" : 613036 }, { "category" : "Search Engines", "hits" : 1, "bytes" : 2858 } ];var result = dataObject.reduce(function(res, obj) {    if (!(obj.category in res))        res.__array.push(res[obj.category] = obj);    else         res[obj.category].bytes = '修改'        return res;}, {__array:[]})
查看完整描述

1 回答

?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

js虽然是值传递,但是对于引用类型本质上传递的值还是指向对象的指针


查看完整回答
反对 回复 2019-01-27
  • 1 回答
  • 0 关注
  • 392 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信