我有什么和我需要什么这很容易.
默认选项(有嵌套属性):
{
sDom: 'frt<"tfoot"lp>',bInfo: false,sPaginationType: "full_numbers",oLanguage: {
sSearch: "",sLengthMenu: "Show _MENU_",oPaginate: {
sFirst: "|<<",sLast: ">>|",sNext: ">>",sPrevIoUs: "<<"
}
}
}
实际选项:
{
oLanguage: {
oPaginate: {
sNext: "MODIFIED"
}
}
}
$.extend的结果:
{
sDom: 'frt<"tfoot"lp>',oLanguage: {
oPaginate: {
sNext: "MODIFIED"
}
}
}
我需要的是使用实际选项适当地扩展默认选项,并获得以下结果(一个属性已被修改):
{
sDom: 'frt<"tfoot"lp>',sNext: "MODIFIED"
sPrevIoUs: "<<"
}
}
}
问题是$.extend函数忽略嵌套属性,只能操作一级属性.现在我手动$.extend每个嵌套的属性,但我想这不是一个解决方案.
解决方法
通过传递true作为第一个参数需要
a recursive copy:
var defaults = {...}
var actual = {...}
//recursively merge to a blank object
console.log($.extend(true,{},defaults,actual))