Javascript 嵌套对象的JQuery扩展-在扩展上设置道具也会更改原始扩展对象

Javascript 嵌套对象的JQuery扩展-在扩展上设置道具也会更改原始扩展对象,javascript,jquery,object,extend,Javascript,Jquery,Object,Extend,我试图通过扩展另外两个对象来创建一个对象 我通过扩展“选项”和“默认”对象来创建设置对象。 这是可行的,但稍后我设置的settings.limit=1000,我的“default.limit”也将设置为1000 这种行为是故意的吗?如果是,原因是什么?我如何避免这种情况 这里还有小提琴: 我也没有预料到这种行为,但您可以通过替换 var limit = settings.limit; limit.a = 1000; 与 我也没有预料到这种行为,但您可以通过替换 var limit = sett

我试图通过扩展另外两个对象来创建一个对象

我通过扩展“选项”和“默认”对象来创建设置对象。 这是可行的,但稍后我设置的
settings.limit=1000
,我的“
default.limit
”也将设置为1000

这种行为是故意的吗?如果是,原因是什么?我如何避免这种情况

这里还有小提琴:


我也没有预料到这种行为,但您可以通过替换

var limit = settings.limit;
limit.a = 1000;


我也没有预料到这种行为,但您可以通过替换

var limit = settings.limit;
limit.a = 1000;

jQuery.extend()documentation()说明了合并默认值和选项,但没有修改默认值,因此我也想知道结果如何。我根据jQuery文档页面上的最后一个示例创建了另一个fiddle,得到了相同的结果:
jQuery.extend()
documentation()表示合并默认值和选项,但没有修改默认值,因此我也对结果感到好奇。我根据jQuery文档页面上的最后一个示例创建了另一个fiddle,得到了相同的结果:
settings.limit = { a: 1000, b: settings.limit.b };