使用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 相关文章推荐
通过判断JavaScript的版本实现执行不同的代码
May 11 Javascript
jQuery EasyUI API 中文文档 - Form表单
Oct 06 Javascript
jQuery EasyUI API 中文文档 - ComboTree组合树
Oct 11 Javascript
基于javascript实现判断移动终端浏览器版本信息
Dec 09 Javascript
根据user-agent判断蜘蛛代码黑帽跳转代码(js版与php版本)
Sep 14 Javascript
js实现input密码框提示信息的方法(附html5实现方法)
Jan 14 Javascript
JavaScript判断变量是否为数组的方法(Array)
Feb 24 Javascript
Vue DevTools调试工具的使用
Dec 05 Javascript
代码详解Vuejs响应式原理
Dec 20 Javascript
node.js中TCP Socket多进程间的消息推送示例详解
Jul 10 Javascript
JS如何在数组指定位置插入元素
Mar 10 Javascript
详解JavaScript中的执行上下文及调用堆栈
Apr 29 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音乐采集(部分代码)
2007/02/14 PHP
php中文本操作的类
2007/03/17 PHP
php获取post中的json数据的实现方法
2011/06/08 PHP
PHP获取一年有几周以及每周开始日期和结束日期
2015/08/06 PHP
php mailer类调用远程SMTP服务器发送邮件实现方法
2016/03/04 PHP
自制PHP框架之路由与控制器
2017/05/07 PHP
prototype.js的Ajax对象
2006/09/23 Javascript
关于UTF-8的客户端用AJAX方式获取GB2312的服务器端乱码问题的解决办法
2010/11/30 Javascript
js禁止页面复制功能禁用页面右键菜单示例代码
2013/08/29 Javascript
javascript函数作用域学习示例(js作用域)
2014/01/13 Javascript
理运用命名空间让js不产生冲突避免全局变量的泛滥
2014/06/15 Javascript
JavaScript中用sort()方法对数组元素进行排序的操作
2015/06/09 Javascript
解决js图片加载时出现404的问题
2020/11/30 Javascript
jQuery+CSS3实现仿花瓣网固定顶部位置带悬浮效果的导航菜单
2016/09/21 Javascript
js获取当前时间(昨天、今天、明天)
2016/11/23 Javascript
canvas绘制万花筒效果(代码分享)
2017/01/20 Javascript
node.js+jQuery实现用户登录注册AJAX交互
2017/04/28 jQuery
Vue-resource拦截器判断token失效跳转的实例
2017/10/27 Javascript
关于angularJs清除浏览器缓存的方法
2017/11/28 Javascript
ant design中upload组件上传大文件,显示进度条进度的实例
2020/10/29 Javascript
Python基于正则表达式实现检查文件内容的方法【文件检索】
2017/08/30 Python
python+selenium实现163邮箱自动登陆的方法
2017/12/31 Python
Python3.5装饰器典型案例分析
2019/04/30 Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
2019/08/06 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
2020/02/04 Python
对tensorflow中tf.nn.conv1d和layers.conv1d的区别详解
2020/02/11 Python
如何基于python实现不邻接植花
2020/05/01 Python
18-35岁旅游团的全球领导者:Contiki
2017/02/08 全球购物
经理秘书找工作求职信
2013/12/19 职场文书
企业管理毕业生求职信
2014/03/11 职场文书
毕业晚会主持词
2014/03/24 职场文书
2014年人事部工作总结
2014/12/03 职场文书
职称评定个人总结
2015/03/05 职场文书
起诉书范文
2015/05/20 职场文书
爱岗敬业事迹材料
2019/06/20 职场文书
PyQt5结合QtDesigner实现文本框读写操作
2021/06/11 Python