javascript – 是否有正确的方法$.extend jQuery中的嵌套属性?

前端之家收集整理的这篇文章主要介绍了javascript – 是否有正确的方法$.extend jQuery中的嵌套属性?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有什么和我需要什么这很容易.

默认选项(有嵌套属性):

{
  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))​

猜你在找的jQuery相关文章