作家
登录

JavaScript的API设计原则

作者: 来源: 2017-06-19 17:57:51 阅读 我要评论

  1. function fn(param1, param2...............paramN) 

你必须对应地把每一个参数按照次序传入,不然你的办法就会偏离你预期去履行,精确的办法是下面的做法。

  1. function fn(json) { 
  2.  
  3. //为必须的参数设置默认值 
  4.  
  5.    var default = extend({ 
  6.  
  7. param: 'default'
  8.  
  9. param1: 'default' 
  10.  
  11. ...... 
  12.  
  13.    },json) 
  14.  
  15.  

这段函数代码,即便你不传任何参数进来,他也会预期运行。因为在声明的时刻,你会根据具体的营业决定参数的缺省值。

四、可扩大性

软件设计最重要的原则之一:永远不修改接口,指扩大它!可扩大性同时会请求接口的职责单一,多职责的接口很难扩大。 举个栗子:

  1. //须要同时改变某个元素的字体和背景 
  2.  
  3. // Nightmare: 
  4.  
  5. function set(selector, color) { 
  6.  
  7.   document.querySelectroAll(selector).style.color = color; 
  8.  
  9.   document.querySelectroAll(selector).style.backgroundColor = color; 
  10.  
  11.  
  12.   
  13.  
  14. //无法扩大改函数,如不雅须要再次改变字体的大年夜小的话,只能修改此函数,在函数后面填加改变字体大年夜小的代码 
  15.  
  16.   
  17.  
  18. //Dream 
  19.  
  20. function set(selector, color) { 
  21.  
  22.   var el = document.querySelectroAll(selector); 
  23.  
  24.   el.style.color = color; 
  25.  
  26.   el.style.backgroundColor = color; 
  27.  
  28.   return el; 
  29.  
  30.  
  31.   
  32.  
  33. //须要设置字体、背景色彩和大年夜小 
  34.  
  35. function setAgain (selector, color, px) { 
  36.  
  37.   var el = set(selector, color) 
  38.  
  39.   el.style.fontSize = px; 
  40.  
  41.   return el; 
  42.  
  43.  

4.可延长

以上只是简单的添加色彩,营业复杂而代码又不是你写的时刻,你就必须去浏览之前的代码再修改它,显然是不相符开放-封闭原则的。修改后的function是返回了元素对象,使得下次须要改变时再次获得返回值做处理。

2.this的应用

可扩大性还包含对this的以及call和apply办法的灵活应用:

1.预感缺点

可以用 类型检测 typeof 或者try…catch。 typeof 会强迫检测对象不抛掉足误,对于不决义的变量尤其有效。

2.抛掉足误

大年夜多半开辟者不欲望掉足了还须要本身去找带对应得代码,最好方法是直接在console中输出,告诉用户产生了什么工作。我们可以用到浏览器的输出api:console.log/warn/error。你还可认为本身的法度榜样留些后路: try…catch。


  推荐阅读

  智慧城市发展路径应分级分类

智能泊车、长途智能抄表、智能路灯杆、智能井盖……聪明城市扶植正在为我们的生活带来各类便利。聪明城市也成为当前热议的话题。6月8日,第二十届中国北京国际科技家当博览会同>>>详细阅读


本文标题:JavaScript的API设计原则

地址:http://www.17bianji.com/lsqh/35828.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)