如何在jquery中用子对象$.扩展对象

How to $.extend objects with sub-objects in jquery?

本文关键字:对象 扩展 jquery      更新时间:2023-09-26

我知道我可以使用$.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"
    }
});

这个jQuery函数将返回这个:

var setting = {
    modal: {
        title: "Registrar",
        type: "register"
    },
    ajax: {
        trigger: ".bumbum",
        url: "modal/lets/go"
    }
};

不幸的是,我需要它:

var setting = {
    ajax: {
        type: "normal",
        trigger: ".bumbum",
        url: "modal/lets/go"
    },
    modal: {
        title: "Registrar",
        type: "register",
        width: "small"
    }
};

知道吗?非常感谢。

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

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