$.extend会把第二个参数对象合并第一个参数对象extObj,然后遍历对象t[x],t[y]两个属性同时绑定对象extObj,但是第二次会把第一次相同的值覆盖掉,所以结果是x,y两个属性绑定的同一个对象,结果你自己跑一下就知道了
@ruanmou:你把 $.extend(extObj,j)改成$.extend(j,extObj)就好,这样每个j存放的内存地址不一样,也不影响合并
@一寸時光:
@ruanmou: t[i] = $.extend({},extObj,j);这样就可以,不会改变extObj结构
@一寸時光:
这里运行extend方法是可以的,
如果换做其他的方法,比如Math.***,比如自己定义的,都不行,最后都是一个值。
我想知道这是为何?
在项目中很多要遍历对象,这个对象是不固定的,然后又要给一个默认值,按照普通的方法去做,就是这个对象的每个键的值都是一样的,都是最后一个。