如何$ .extend在jquery中使用子对象的对象?

Cai*_*aki 3 javascript merge jquery object

我知道我可以使用$.extend({}, x);将两个或多个对象的内容合并到第一个对象中,但我的答案是,和子对象?他们只会被覆盖?我不能合并呢?

我有这个:

var settings = $.extend({
    modal: {
        title: "Atention",
        type: "text",
        width: "small"
    },
    ajax: {
        type: "normal",
        trigger: "",
        url: ""
    }
}, {
    modal: {
        title: "Registrar",
        type: "register"
    },
    ajax: {
        trigger: ".bumbum",
        url: "modal/lets/go"
    }
});
Run Code Online (Sandbox Code Playgroud)

这个jQuery函数会返回这个:

var setting = {
    modal: {
        title: "Registrar",
        type: "register"
    },
    ajax: {
        trigger: ".bumbum",
        url: "modal/lets/go"
    }
};
Run Code Online (Sandbox Code Playgroud)

不幸的是我需要它:

var setting = {
    ajax: {
        type: "normal",
        trigger: ".bumbum",
        url: "modal/lets/go"
    },
    modal: {
        title: "Registrar",
        type: "register",
        width: "small"
    }
};
Run Code Online (Sandbox Code Playgroud)

任何的想法?谢谢.

the*_*dox 6

对于深度嵌套尝试,$.extend(true, {}, x);.对于深度嵌套,格式为:

jQuery.extend( [ deep ], target, object1 [, objectN ] );