2

如何合并 2 个键值对 defaultDialogSetup 和 setupArray?

var defaultDialogSetup = { modal: true, show: 'fade', hide: 'fade' };

var setupArray = {
                open: function (e) { $(this).load($(link).attr('href')); },
                title: link.innerHTML,               
                width: 300,
                height: 250,
                buttons:
                {
                    "OK": function () { createTemplate($(this), $('form', this)); },
                    "Cancel": function () { $(this).dialog("close"); }
                }
            };

$dialog.dialog(setupArray);
4

2 回答 2

4

利用jQuery.extend()

http://api.jquery.com/jQuery.extend/

将两个或多个对象的内容合并到第一个对象中。

setupArray = $.extend(defaultDialogSetup, setupArray);
于 2012-10-22T18:06:29.837 回答
1

另一个选择是 UnderscoreJS extend()

http://underscorejs.org/#extend

将源对象中的所有属性复制到目标对象,然后返回目标对象。它是有序的,因此最后一个源将覆盖先前参数中的同名属性。

语法与 jQuery 方法非常相似:

setupArray = _.extend(defaultDialogSetup, setupArray);

于 2014-10-17T17:29:59.063 回答