Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript $.extend()不合并选项_Javascript_Jquery - Fatal编程技术网

Javascript $.extend()不合并选项

Javascript $.extend()不合并选项,javascript,jquery,Javascript,Jquery,我有一个插件的选项,如 $.growl.default_options = { allow_dismiss: true, position: { from: "top", align: "right" }, offset: 20, spacing: 10, z_index: 1031, fade_in: 400, delay: 5000, template: { icon_ty

我有一个插件的选项,如

$.growl.default_options = {
    allow_dismiss: true,
    position: {
        from: "top",
        align: "right"
    },
    offset: 20,
    spacing: 10,
    z_index: 1031,
    fade_in: 400,
    delay: 5000,
    template: {
        icon_type: 'class',
        container: '<div class="col-xs-10 col-sm-10 col-md-3 alert">',
        dismiss: '<button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>',
        title: '<strong>',
        title_divider: '',
        message: ''
    }
});
而不是
选项

$.growl.default_options = {
    allow_dismiss: true,
    position: {
        align: "right"
    },
    offset: 20,
    spacing: 10,
    z_index: 1031,
    fade_in: 400,
    delay: 5000,
    template: {
        container: '<div class="col-xs-10 col-sm-10 col-md-3 alert">'
    }
});
$.growl.default\u选项={
允许(u)解散:对,,
职位:{
对齐:“右”
},
抵销:20,
间距:10,
z_指数:1031,
淡入:400,
延误:5000,
模板:{
容器:“”
}
});
为什么
模板
只有一个变量?

您想要一个深度(递归)扩展:

发件人:

默认情况下,$.extend()执行的合并不是递归的;如果 第一个对象的属性本身就是一个对象或数组,它将 被第二个中具有相同键的属性完全覆盖 或后续对象。这些值不会合并。这可以从中看出 下面的例子是通过检查香蕉的价值。但是, 如果为第一个函数参数传递true,则对象将 递归合并

您需要一个深度(递归)扩展:

发件人:

默认情况下,$.extend()执行的合并不是递归的;如果 第一个对象的属性本身就是一个对象或数组,它将 被第二个中具有相同键的属性完全覆盖 或后续对象。这些值不会合并。这可以从中看出 下面的例子是通过检查香蕉的价值。但是, 如果为第一个函数参数传递true,则对象将 递归合并


是的,我错过了我的第一次阅读,但我刚刚找到它,并即将结束时,我看到它已经回答。哈哈。现在可以了。是的,我错过了我第一次阅读的内容,我刚找到它,正要结束这篇文章时,我看到它已经被回答了。哈哈。现在可以了。
options = $.extend({}, $.growl.default_options, options);
$.growl.default_options = {
    allow_dismiss: true,
    position: {
        align: "right"
    },
    offset: 20,
    spacing: 10,
    z_index: 1031,
    fade_in: 400,
    delay: 5000,
    template: {
        container: '<div class="col-xs-10 col-sm-10 col-md-3 alert">'
    }
});
options = $.extend(true, {}, $.growl.default_options, options);