JavaScript函数默认参数(完全对象合并)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript函数默认参数(完全对象合并)相关的知识,希望对你有一定的参考价值。

This snippet uses jQuery.extend() to merge the objects.
  1. /**
  2.  * This way we can add defaults to a function:
  3.  * var a = function(a, b) {
  4.  * // code
  5.  * }.defaults(default_a, default_b);
  6.  */
  7. Function.prototype.defaults = function() {
  8. var _f = this,
  9. _l = _f.length - arguments.length,
  10. _a = new Array(_l>0?_l:0).concat(Array.prototype.slice.apply(arguments));
  11.  
  12. return function() {
  13. var i = 0,
  14. args = Array.prototype.slice.apply(arguments).concat(_a.slice(arguments.length, _a.length));
  15.  
  16. for (;i < args.length; i++) {
  17. if ($.isPlainObject(args[i])) {
  18. args[i] = $.extend(true, {}, _a[i], arguments[i]);
  19. }
  20. }
  21.  
  22. return _f.apply(_f, args);
  23. };
  24. };

以上是关于JavaScript函数默认参数(完全对象合并)的主要内容,如果未能解决你的问题,请参考以下文章

五. JavaScript实现对象合并功能

函数的 JavaScript 默认参数

JavaScript中一个对象中的默认破坏函数参数

Javascript - Jquery - 函数参数

Javascript的参数详解

Javascript - 带有可选参数作为对象的函数?