下面输出结果是"jim",而不是"tom",
是因为数组中保存的都是指向json对象a的地址,
dd[0],dd[1],dd[2],dd[3]对象指向的内存地址相同,
当修改其中一个dd[0]的属性值的时候,数组所有元素指向的对象属性值都改变了。
1234567891011var dd = [] var a = { "cname": "tom" } for (var i = 0 i <4 i++) { dd[i] =a }dd[0].cname = "jim"alert(dd[2].cname)
下面输出结果是0,而不是1,
是因为数组元素dd[0],dd[1],dd[2],dd[3]对应的内存地址都不同,互不干扰。
12345678910111213var dd = [] var a = 0 for (var i = 0 i <4 i++) { dd[i] =a } dd[0]=1 alert(dd[2])
JS(Justin&Sophia),中国台湾流行乐组合,由陈忠义、陈绮萱组成。
1999年,陈忠义与陈绮萱组成“GoGo&MeMe”,并推出组合首张音乐专辑《Say Forever》。2004年,签约华研国际,并改名为“JS”;同年8月,推出组合第二张音乐专辑《遇见未来》。2006年,JS与华研国际的合约期满后,并创办了“音思拜耳Inspire音乐工作室”;同年7月,推出组合首张EP专辑《Rosso苏菲亚的盛宴》。2008年,凭借专辑《此生最美的风景》入围“新加坡金曲奖”最佳组合奖。2009年,推出组合第二张精选辑《The JS Moment》。2012年,推出组合第四张音乐专辑《听见》。2013年,凭借专辑《听见》入围“第24届金曲奖”最佳演唱组合。2014年12月21日,在上海举行“JS Xmas演唱会”。2015年3月,推出组合第五张EP专辑《这就是爱》。
ob是引用类型,你把datas的0到9都指向了ob,ob的值改掉之后,datas0到9的数据就全部改掉了。所以,你可以把ob的声明放到for循环里面,这样每次循环,ob都是新建的,datas0到9就是指向不同的地址。
var arrayObj = new Array() //创建一个数组arrayObj. push([item1 [item2 [. . . [itemN ]]]])// 将一个或多个新元素添加到数组结尾,并返回数组新长度
arrayObj.unshift([item1 [item2 [. . . [itemN ]]]])// 将一个或多个新元素添加到数组开始,数组中的元素自动后移,返回数组新长度
arrayObj.splice(insertPos,0,[item1[, item2[, . . . [,itemN]]]])//将一个或多个新元素插入到数组的指定位置,插入位置的元素自动后移,返回""。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)