使用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模拟弹出效果代码修正版
Aug 07 Javascript
Jquery提交表单 Form.js官方插件介绍
Mar 01 Javascript
通过url查找a元素并点击
Apr 09 Javascript
jQuery 顶部导航跟随滚动条滚动固定浮动在顶部
Jun 06 Javascript
在AngularJS中使用AJAX的方法
Jun 17 Javascript
jQuery实现分章节锚点“回到顶部”动画特效代码
Oct 23 Javascript
Bootstrap中datetimepicker使用小结
Dec 28 Javascript
jQuery实现的粘性滚动导航栏效果实例【附源码下载】
Oct 19 jQuery
angularjs的单选框+ng-repeat的实现方法
Sep 12 Javascript
Vue.js中该如何自己维护路由跳转记录
May 19 Javascript
解决vue elementUI中table里数字、字母、中文混合排序问题
Jan 07 Javascript
jQuery实现获取多选框的值示例
Feb 07 jQuery
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版
2016/07/22 PHP
laravel中短信发送验证码的实现方法
2018/04/25 PHP
JS 容错处理代码, 屏蔽错误信息
2021/03/09 Javascript
fix-ie5.js扩展在IE5下不能使用的几个方法
2007/08/20 Javascript
js抽奖实现随机抽奖代码效果
2013/12/02 Javascript
jQuery.Highcharts.js绘制柱状图饼状图曲线图
2015/03/14 Javascript
Bootstrap简单表单显示学习笔记
2016/11/15 Javascript
微信小程序 详解Page中data数据操作和函数调用
2017/01/12 Javascript
基于JS实现移动端向左滑动出现删除按钮功能
2017/02/22 Javascript
JavaScript生成指定范围的时间列表
2018/03/19 Javascript
Vue.js 中取得后台原生HTML字符串 原样显示问题的解决方法
2018/06/10 Javascript
浅谈Fetch 数据交互方式
2018/12/20 Javascript
[02:37]2018DOTA2亚洲邀请赛赛前采访-EG篇
2018/04/03 DOTA
python抓取百度首页的方法
2015/05/19 Python
Swift 3.0在集合类数据结构上的一些新变化总结
2016/07/11 Python
python类中super()和__init__()的区别
2016/10/18 Python
解决Mac下首次安装pycharm无project interpreter的问题
2018/10/29 Python
python 执行终端/控制台命令的例子
2019/07/12 Python
解决使用export_graphviz可视化树报错的问题
2019/08/09 Python
flask/django 动态查询表结构相同表名不同数据的Model实现方法
2019/08/29 Python
pycharm 中mark directory as exclude的用法详解
2020/02/14 Python
scrapy爬虫:scrapy.FormRequest中formdata参数详解
2020/04/30 Python
Idea安装python显示无SDK问题解决方案
2020/08/12 Python
详解HTML5布局和HTML5标签
2020/10/26 HTML / CSS
美国彩妆品牌:Coastal Scents
2017/04/01 全球购物
在校学生职业规划范文
2014/01/08 职场文书
幼儿园家长会欢迎词
2014/01/09 职场文书
12岁生日感言
2014/01/21 职场文书
今冬明春火灾防控工作方案
2014/05/29 职场文书
群众路线班子对照检查材料
2014/09/25 职场文书
2014年环境整治工作总结
2014/12/10 职场文书
高中生综合素质评价范文
2015/08/18 职场文书
有关浪费资源的建议书
2015/09/14 职场文书
公司致全体员工的感谢信
2019/06/24 职场文书
python异步的ASGI与Fast Api实现
2021/07/16 Python
基于CSS制作创意端午节专属加载特效
2022/06/01 HTML / CSS