Jquery扩展深度复制问题

Jquery扩展深度复制问题,jquery,Jquery,一个外部合作伙伴为我们开发了一个jquery插件。 我想重置一些设置,但令我惊讶的是,它不起作用 我进行了一些调试,得到了以下结果: 我注意到他们使用了$.extend的深度副本 var t='{“config”:{“filters”:{“filtersPerCarousel”:2,“sliders”:[{“machineName”:“brighty”,“filter”,“range”:“brightness”,“filter”,“range”,“filter”,“range”,“transl

一个外部合作伙伴为我们开发了一个jquery插件。 我想重置一些设置,但令我惊讶的是,它不起作用

我进行了一些调试,得到了以下结果:

我注意到他们使用了$.extend的深度副本

var t='{“config”:{“filters”:{“filtersPerCarousel”:2,“sliders”:[{“machineName”:“brighty”,“filter”,“range”:“brightness”,“filter”,“range”,“filter”,“range”,“translationKey”:“filter.slider.brightness”},“filter.slider.brightness”},{“machineName”:“contrast”,“filter”:“对比度”,“range”:100,“step”:5,“value”:0,“translationKey:“filter.slider.contrast”},“预设”:[{“machineName“原始”、“过滤器”:[],“预览图像”:“/images/filters/original.png”,“translationKey”:“filter.original”},{“machineName”:“blackwhite”,“过滤器”:[{“过滤器”:“饱和度”,“设置”:[-100]}],“预览图像”:“/images/filters/blackwhite.png”,“translationKey”:“filter.blackwhite”},{“machineName”:“乌贼”,“过滤器”:[{“过滤器”:“灰度”、“设置”:[]},{”过滤器“:“sepia”,“settings:[60]}],“previewImage:“/images/filters/sepia.png”,“translationKey:“filter.sepia”}]}”;
var o='{“配置”:{“过滤器”:{“滑块”:[],“预设”:[]}';
settings=$.extend(true,{},jQuery.parseJSON(t),jQuery.parseJSON(o));
console.log(settings.config);
请看一看

jQuery Extend会合并传递给它的所有对象,但不会覆盖这些对象。如果传递的是填充对象和空对象,它会合并并从两者获取所有数据。要获取所有内部数据,需要将“深度复制”设置为true

如果需要重置某些值,可以手动设置它们

var t='{“config”:{“filters”:{“filtersPerCarousel”:2,“sliders”:[{“machineName”:“brightness”,“filter”,“range”:100,“brightness”,“filter”,“range”:5,“light”,“range”,“translationKey”:“filter.slider.brightness”},“filter.slider.brightness”},{“machineName”:“contrast”,“filter”:“对比度”,“range”:100,“step”:5,“value”:0,“translationKey:“filter.slider.slider.contrast”},“预设”:“原始”、“过滤器”:[],“预览图像”:“/images/filters/original.png”,“translationKey”:“filter.original”},{“machineName”:“blackwhite”,“过滤器”:[{“过滤器”:“饱和度”,“设置”:[-100]}],“预览图像”:“/images/filters/blackwhite.png”,“translationKey”:“filter.blackwhite”},{“machineName”:“乌贼”,“过滤器”:[{“过滤器”:“灰度”,“设置”:[]},{”过滤器“:“sepia”,“settings:[60]}],“previewImage:“/images/filters/sepia.png”,“translationKey:“filter.sepia”}]}”;
settings=jQuery.parseJSON(t);
settings.config.filters.sliders=[];
settings.config.filters.presets=[];
console.log(设置);

对于深度复制,您必须将深度复制设置为
true
;这是每种设计。您关心的是什么?什么不起作用?