Javascript函数的模板,带有作为对象传递的可选和必需参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javascript函数的模板,带有作为对象传递的可选和必需参数相关的知识,希望对你有一定的参考价值。

A simple template for a javascript function which allows for an arbitrary number of named arguments to be passed in. This is achieved by passing a single object as an argument with each of the 'real' arguments being a key/value pair. In this way arguments can be passed in any order and we can easily add in new arguments.

To call, simply pass in an object with the required arguments:
myFunction ({opt1: 'cat', opt4: 'dog', opt2: 'monkey'})

Validates clean in jsLint.
  1. function myFunction(options) {
  2. // options may contain: opt1, opt2, opt3, opt4
  3.  
  4. 'use strict';
  5.  
  6. // Where a mandatory parameter is missing, throw an error
  7. if (typeof options !== 'object' || options.opt1 === undefined || options.opt2 === undefined) {
  8. throw {name: 'Error', message: 'Missing options property: opt1 and opt2 must be provided'};
  9. }
  10.  
  11. // Where an optional parameter is missing, set it to the default value
  12. var key,
  13. default_options = {
  14. opt3 : 'dog',
  15. opt4 : 99
  16. };
  17.  
  18. for (key in default_options) {
  19. if (default_options.hasOwnProperty(key)) {
  20. if (options[key] === undefined) {
  21. options[key] = default_options[key];
  22. }
  23. }
  24. }
  25.  
  26. // All arguments are now available in the format options.opt1, options.opt2, etc
  27.  
  28. // Rest of function...
  29.  
  30. }

以上是关于Javascript函数的模板,带有作为对象传递的可选和必需参数的主要内容,如果未能解决你的问题,请参考以下文章

使用带有 JavaScript 模板文字函数的 for 循环

javascript传递对象作为参考

javascript 使用解构分配将对象作为函数的参数传递

模板字符串作为对象属性名称

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

JavaScript高级 面向对象(12)--引用类型值类型作为参数传递的特性