使用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 相关文章推荐
[原创]来自ImageSee官方 JavaScript图片浏览器
Jan 16 Javascript
input、button的不同type值在ajax提交表单时导致的陷阱
Feb 24 Javascript
关于jQuery的inArray 方法介绍
Oct 08 Javascript
js全选实现和判断是否有复选框选中的方法
Feb 17 Javascript
JavaScript实现向setTimeout执行代码传递参数的方法
Apr 16 Javascript
jQuery实现带有洗牌效果的动画分页实例
Aug 31 Javascript
JS跨域解决方案之使用CORS实现跨域
Apr 14 Javascript
jQuery插件编写步骤详解
Jun 03 Javascript
JQuery Ajax跨域调用和非跨域调用问题实例分析
Apr 16 jQuery
react用Redux中央仓库实现一个todolist
Sep 29 Javascript
vue监听浏览器原生返回按钮,进行路由转跳操作
Sep 09 Javascript
iview实现动态表单和自定义验证时间段重叠
Jan 10 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
PHP6 mysql连接方式说明
2009/02/09 PHP
关于查看MSSQL 数据库 用户每个表 占用的空间大小
2013/06/21 PHP
PHP中4个加速、缓存扩展的区别和选用建议
2014/03/12 PHP
PHP中变量引用与变量销毁机制分析
2014/11/15 PHP
PHP 常用时间函数资料整理
2016/10/22 PHP
PDO::exec讲解
2019/01/28 PHP
Windows服务器中PHP如何安装redis扩展
2019/09/27 PHP
JS 容错处理代码, 屏蔽错误信息
2021/03/09 Javascript
使用Microsoft Ajax Minifier减小JavaScript文件大小的方法
2010/04/01 Javascript
JavaScript 用Node.js写Shell脚本[译]
2012/09/20 Javascript
jquery 页面滚动到底部自动加载插件集合
2014/01/31 Javascript
jQuery实现table中的tr上下移动并保持序号不变的实例代码
2016/07/11 Javascript
微信小程序 Audio API详解及实例代码
2016/09/30 Javascript
js仿手机页面文件下拉刷新效果
2016/10/14 Javascript
JS IOS/iPhone的Safari浏览器不兼容Javascript中的Date()问题如何解决
2016/11/11 Javascript
JS检测window.open打开的窗口是否关闭
2017/06/25 Javascript
原生JS实现的简单小钟表功能示例
2018/08/30 Javascript
基于React Native 0.52实现轮播图效果
2020/08/25 Javascript
Vue 组件复用多次自定义参数操作
2020/07/27 Javascript
vue 验证两次输入的密码是否一致的方法示例
2020/09/29 Javascript
详解python 发送邮件实例代码
2016/12/22 Python
Python实现检测文件MD5值的方法示例
2018/04/11 Python
Python 操作 ElasticSearch的完整代码
2019/08/04 Python
python打印直角三角形与等腰三角形实例代码
2019/10/20 Python
pytorch中 gpu与gpu、gpu与cpu 在load时相互转化操作
2020/05/25 Python
在django中查询获取数据,get, filter,all(),values()操作
2020/08/09 Python
golang/python实现归并排序实例代码
2020/08/30 Python
HTML5 绘制图像(上)之:关于canvas元素引领下一代web页面的问题
2013/04/24 HTML / CSS
C和C++经典笔试题附答案解析
2014/08/18 面试题
综合测评自我鉴定
2013/10/08 职场文书
实习单位接收函模板
2014/01/10 职场文书
高一英语教学反思
2014/01/22 职场文书
巴西世界杯32强口号
2014/06/05 职场文书
党支部特色活动方案
2014/08/20 职场文书
2015年项目经理工作总结
2015/04/30 职场文书
清明扫墓感想
2015/08/11 职场文书