JSArray.fill()的浅拷贝const arrTest = (len)=>(new Array(len)).fill({}).map(e=>{e.age=Math.random()*100;e.page=Math.random()*100;return e;})如果fill是深拷贝那么⽆事发⽣皆⼤欢喜。可惜他是浅拷贝,所以最后数组⾥是相同的值。
const arrTest = (len)=>(new Array(len)).fill({}).map(e=>{e={age:Math.random()*100,page:Math.random()*100};return e;})直接改不⾏,那我只能new⼀个新的来赋值了。
是:当⼀个对象被传递给fill⽅法的时候, 填充数组的是这个对象的引⽤。
另外要注意:匿名函数不能直接返回赋值表达式。
阮一峰js标准参考教程这个问题MDN也没说清楚,还得看阮⼀峰⽼师。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论