Jquery plugins jQuery插件默认包含复杂对象

Jquery plugins jQuery插件默认包含复杂对象,jquery-plugins,undefined,complextype,defaults,Jquery Plugins,Undefined,Complextype,Defaults,以下对默认值的定义是错误的做法吗 var defaults = { name:'', surname:'', address:{ part1:'', part2:'', postCode:'' } }; 如果插件启动器只定义了address对象中的part1,则地址的其余部分将未定义 处理这个问题的最佳方法是什么?或者我应该不使用复杂对象作为选项吗?好的,所以在我提问之前,这只是我搜索中的一个措辞问题 我不知道j

以下对默认值的定义是错误的做法吗

var defaults = {
    name:'',
    surname:'',
    address:{
        part1:'',
        part2:'',
        postCode:'' 
    }
};
如果插件启动器只定义了address对象中的part1,则地址的其余部分将未定义


处理这个问题的最佳方法是什么?或者我应该不使用复杂对象作为选项吗?

好的,所以在我提问之前,这只是我搜索中的一个措辞问题

我不知道jQuery.extend()可以通过使用

this.opts = $.extend(true,{}, defaults, options); 
而不是

this.opts = $.extend({}, defaults, options);

这将是全球性的吗?那么这是一个坏习惯……你说的“地址的其余部分将是未定义的”是什么意思?如果你不需要它们,为什么要定义它们呢?假设我想在一个字符串变量中使用它们,如下所示:var address=part1+part2+postCode;邮政编码也没有定义。这不仅仅是添加空的,而是“未定义的”。我可以在将来使用它们时进行检查,但我要问的是,我是否只是没有创建该格式的默认值。但这是我的处境。