配置对象通常用在API库的实现中,当程序中需要编写要多次的模块,也可以采用这种模式。这种模式的好处是接口明确,扩展方便。比如,一个 addPerson在设计的最初需要两个参数作为初始化时人的姓名:

function addPerson(first, last) {...}

随着程序的进一步扩展,这个函数需要的参数变多了:

function addPerson(first, last, dob, gender, address) {...}

这样,函数在执行时就需要按次序传入这些参数:

addPerson("Bruce", "Wayne", new Date(), null, null, "batman");

这并不太方便,而且也不直观:从调用函数的代码上看,那两个null不知道是用在哪个参数上的。如果可以只传一个配置对象作为参数:

addPerson(conf);

并在传参之前把配置对象设置好相应的值:

var conf = {username: "batman",first: "Bruce",last: "Wayne"
};addPerson(conf);

那我们就得到以下的好处:
  • 调用函数时不需要记得参数的次序
  • 随意地忽略那么不想传递的参数
  • 读写代码都更方便
  • API的实现可以方便更改
坏处是,现在调用addPerson就得记住它的参数名,而且这些参数的名字在JS代码minify的时候不会缩小。

转载于:https://www.cnblogs.com/Bryran/p/3976128.html

JavaScript基础函数的配置对象Configuration Objects(020)相关推荐

  1. JavaScript基础09-day11【原型对象、toString()、垃圾回收、数组、数组字面量、数组方法】

    学习地址: 谷粒学院--尚硅谷 哔哩哔哩网站--尚硅谷最新版JavaScript基础全套教程完整版(140集实战教学,JS从入门到精通) JavaScript基础.高级学习笔记汇总表[尚硅谷最新版Ja ...

  2. JavaScript教程——函数(arguments 对象)

    arguments 对象 定义 由于 JavaScript 允许函数有不定数目的参数,所以需要一种机制,可以在函数体内部读取所有参数.这就是arguments对象的由来. arguments对象包含了 ...

  3. JavaScript零基础入门 7:JavaScript基础函数

    目录 一.时间函数Date 1.Date 2.创建一个指定的时间对象 3.getDate() 4.getDay() 5.getMonth() 6.getFullYear() 7.getTime() 8 ...

  4. javascript基础-函数

    函数就是使用关键字 "function" 定义的一段具有独立作用域,能被反复执行的语句块,JavaScript函数大致包括普通函数.变量函数.构造函数.匿名函数.闭包函数以及ES6 ...

  5. JavaScript基础(四)对象、数组、对象与数组的常用API

    目录 一.对象 1. 对象的创建 2. 对象属性的访问 3. 遍历对象属性 4. 检测属性是否存在 5. 对象的方法 二.数组对象 1. 数组的创建 2. 访问数组 3. 数组长度 4. 数组的遍历 ...

  6. JavaScript基础教程之数学对象

    Write By Monkeyfly 以下内容均为原创,如需转载请注明出处. 数学对象(Math) 大纲: 数学对象简介 Math对象的属性 Math对象的方法 一.数学对象简介 Math对象与其他对 ...

  7. JavaScript基础_10(BOM对象1)

    JavaScript中的BOM对象 浏览器对象模型–Browser ObjectModel (BOM) 一.Window 对象 1. 属性 (1)有三种方法能够确定浏览器窗口的尺寸(浏览器的视口,不包 ...

  8. 任务3-1(JavaScript基础)

    web前端开发JavaScript基础 1.VScode配置: 2.JavaScript语法: 2.1 注释和console 2.2 三个容器关键字 2.3 数据类型 2.4 类型转换 2.5 数值运 ...

  9. JavaScript(基础、高级)笔记汇总表【尚硅谷JavaScript全套教程完整版】

    目   录 前言 JavaScript(基础+高级)配套资料下载 JavaScript 基础 学习地址 学习笔记 day 05(P001-P006)[2016.11.22] day 06(P007-P ...

最新文章

  1. 大牛深入讲解!java从入门到项目实战
  2. C++ Primer 学习笔记_75_模板与泛型编程 --模板定义
  3. cocos2d-lua3.7组件篇(三)-http通信demo
  4. php 谷歌翻译api_武汉武昌区地质勘测翻译公司-译嘉合翻译
  5. 在RH6.5上安装sublime3 build3103步骤
  6. JSP页面报错:“Uncaught SyntaxError: Unexpected token ”
  7. kettle 插入更新 数据增量_kettle基于时间戳增量更新
  8. 153. php 引用
  9. 数据库表的建立与基本操作
  10. 橙色云再度入选中国科学院发布的《互联网周刊》
  11. bilibili封面提取
  12. 新闻——覃雄派、王会举、杜小勇、王珊论文两次入选“领跑者5000—中国精品科技期刊顶尖学术论文”
  13. 算法竞赛常用STL库
  14. PS实例之制作晶莹剔透气泡
  15. PAT-A1010解题报告
  16. Dubbo分布式事务处理--视频教程
  17. Linux 网络适配,ping命令,更改自己的IP地址
  18. mongodb-18.聚合查询练习1
  19. DeFi基本概念-开发人员必看
  20. Perl 批评的游乐园镜子

热门文章

  1. 《循序渐进Linux》第二版即将出版发行(附封面)
  2. 谈谈物联网产业4G转型中的隐忧与应对
  3. SQL Server远程连接操作
  4. 多线程junit单元测试
  5. 终日奔波只为饥,方才一饱便思衣
  6. 终极破产的原因——20年玩儿钱与玩观念的的新经济
  7. 大数据质量管理策略有哪些
  8. 如何用div装html,​div标签如何使用的
  9. linux+yum安装终端php,centos下yum搭建安装linux+apache+mysql+php环境教程
  10. 随机游走问题的神奇应用(一)