使用JSON作为函数的参数的优缺点


Posted in Javascript onOctober 27, 2016

一直对json不太懂,最近看了一些介绍才发现,原来这个东西这么好用,下面就为大家介绍一下

1、我们可以随时为一个函数添加/删除参数或在任意参数位置添加新参数,而不会像传统参数一样必须按照规定的顺序书写,而且每次添加或删除函数某个参数都要函数内容进行修改。而使用JSON作为参数可以不用考虑参数顺序。
看下面代码演示:

<script type="text/javascript">
 <!--
 //普通方法
 function commonArg(name,age,desc){
  var userinfo="name: "+name+","+"age: "+age+"\ndescription: "+desc;
  alert(userinfo);
 }
 commonArg("yemoo",22,"a boy!")//每次调用都必须按照规定的参数顺序书写,如果写成commonArg(22,"yemoo","desc")则返回信息就不对,每次都必须记忆每个参数意义及顺序
 
 //JSON参数法
 function jsonArg(info){
  var userinfo="name: "+info.name+"\tage: "+info.age+"\ndescription: "+info.desc;
  alert(userinfo);
 }
 jsonArg({name:"blue",age:22,desc:"a gril?"});
 jsonArg({desc:"not a people!",name:"sss",age:0});
 //参数位置可以随意写
 //-->
 </script>

普通函数缺点很明显:必须记忆参数意义和顺序。而使用JSON的方法则不需要。

2、使用者对函数的调用非常方便,特别是在只需要传入其中几个或一个参数时。
看下面的代码演示:

<script type="text/javascript">
 <!--
 //普通方法
 function commonArg(name,age,desc){
  var userinfo="name: "+(name||"empty")+"\tage: "+(age||0)+"\ndescription: "+desc||"empty";
  alert(userinfo);
 }
 //当只需要设定后面的参数时前面每个参数都需要设置为null
 commonArg("tempUser");
 commonArg(null,null,"a boy!");
 commonArg(null,20);
 
 //JSON参数法
 function jsonArg(info){
  var userinfo="name: "+(info.name||"empty")+"\tage: "+(info.age||0)+"\ndescription: "+(info.desc||"empty");
  alert(userinfo);
 }
 //每次只需要设置需要设定参数项
 jsonArg({name:"tempUser"});
 jsonArg({desc:"a boy!"});
 jsonArg({age:20});
 //-->
 </script>

JSON方法优点很明显:每次只需传入需要的参数即可,而不用考虑其他参数。
JSON真是一个好用的东西,不用在ajax方面还是在js的其他方面都体现了其方便灵活的特性,的确应该好好去挖掘和学习json。

Javascript 相关文章推荐
js getElementsByTagName的简写方式
Jun 27 Javascript
showModelDialog弹出文件下载窗口的使用示例
Nov 19 Javascript
jquery使用$(element).is()来判断获取的tagName
Aug 24 Javascript
JS button按钮实现submit按钮提交效果
Nov 01 Javascript
利用imgareaselect辅助后台实现图片上传裁剪
Mar 02 Javascript
基于Axios 常用的请求方法别名(详解)
Mar 13 Javascript
使用Vuex实现一个笔记应用的方法
Mar 13 Javascript
详解Vue-cli webpack移动端自动化构建rem问题
Apr 07 Javascript
vue底部加载更多的实例代码
Jun 29 Javascript
微信JS-SDK实现微信会员卡功能(给用户微信卡包里发送会员卡)
Jul 25 Javascript
react PropTypes校验传递的值操作示例
Apr 28 Javascript
vue实现路由懒加载的3种方法示例
Sep 01 Javascript
Javascript 获取鼠标当前的位置实现方法
Oct 27 #Javascript
JavaScript实现使用Canvas绘制图形的基本教程
Oct 27 #Javascript
js 实现一些跨浏览器的事件方法详解及实例
Oct 27 #Javascript
jQuery 检查某个元素在页面上是否存在实例代码
Oct 27 #Javascript
基于JS快速实现导航下拉菜单动画效果附源码下载
Oct 27 #Javascript
简单理解vue中el、template、replace元素
Oct 27 #Javascript
深入理解JavaScript定时机制
Oct 27 #Javascript
You might like
php使用ICQ网关发送手机短信
2013/10/30 PHP
让PHP显示Facebook的粉丝数量方法
2014/01/08 PHP
PHP实现的多维数组去重操作示例
2018/07/21 PHP
PHP htmlentities()函数用法讲解
2019/02/25 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
几款极品的javascript压缩混淆工具
2007/05/16 Javascript
javascript写的日历类(基于pj)
2010/12/28 Javascript
JS连连看源码完美注释版(推荐)
2013/12/09 Javascript
JavaScript中对象属性的添加和删除示例
2014/05/12 Javascript
JavaScript实现按照指定长度为数字前面补零输出的方法
2015/03/19 Javascript
JS实现可关闭的对联广告效果代码
2015/09/14 Javascript
利用Javascript实现BMI计算器
2016/08/16 Javascript
学习vue.js中class与style绑定
2016/12/03 Javascript
Angular的$http的ajax的请求操作(推荐)
2017/01/10 Javascript
整理关于Bootstrap表单的慕课笔记
2017/03/29 Javascript
浅谈vue实现数据监听的函数 Object.defineProperty
2017/06/08 Javascript
利用jquery去掉时光轴头尾部线条的方法实例
2017/06/16 jQuery
以BootStrap Tab为例写一个前端组件
2017/07/25 Javascript
微信小程序实现animation动画
2018/01/26 Javascript
详解nodejs 配置文件处理方案
2019/01/02 NodeJs
vue props default Array或是Object的正确写法说明
2020/07/30 Javascript
[01:20]DOTA2上海特级锦标赛现场采访:谁的ID最受青睐
2016/03/25 DOTA
Django中login_required装饰器的深入介绍
2017/11/24 Python
django 发送邮件和缓存的实现代码
2018/07/18 Python
PyQt5实现从主窗口打开子窗口的方法
2019/06/19 Python
在Tensorflow中查看权重的实现
2020/01/24 Python
python构造IP报文实例
2020/05/05 Python
Pycharm-community-2020.2.3 社区版安装教程图文详解
2020/12/08 Python
纯CSS3实现8组超炫酷鼠标滑过图片动画
2016/03/16 HTML / CSS
英国领先的男士服装和时尚零售商:Burton
2017/01/09 全球购物
法国足球商店:Footcenter
2019/07/06 全球购物
优秀的教师个人的中文求职信
2013/09/21 职场文书
女大学生毕业找工作的自我评价
2013/10/03 职场文书
办理生育手续介绍信
2014/01/14 职场文书
汽车专业求职信
2014/06/05 职场文书
婚宴致辞
2015/07/28 职场文书