使用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 相关文章推荐
解决FLASH需要点击激活的代码
Dec 20 Javascript
基于mootools插件实现遮罩层新手引导
May 24 Javascript
JQuery设置和去除disabled属性的5种方法总结
May 16 Javascript
JS验证邮件地址格式方法小结
Dec 01 Javascript
jQuery实现选项卡切换效果简单演示
Dec 09 Javascript
[原创]SyntaxHighlighter自动识别并加载脚本语言
Feb 07 Javascript
jQuery Validate表单验证插件实现代码
Jun 08 jQuery
微信小程序当前时间时段选择器插件使用方法详解
Dec 28 Javascript
vue实现父子组件之间的通信以及兄弟组件的通信功能示例
Jan 29 Javascript
微信小程序五子棋游戏AI实现方法【附demo源码下载】
Feb 20 Javascript
vue中created和mounted的区别浅析
Aug 13 Javascript
html5 录制mp3音频支持采样率和比特率设置
Jul 15 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
echo(),print(),print_r()之间的区别?
2006/11/19 PHP
PHP利用hash冲突漏洞进行DDoS攻击的方法分析
2015/03/26 PHP
PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法
2016/04/01 PHP
项目实践之javascript技巧
2007/12/06 Javascript
js 字符串转化成数字的代码
2011/06/29 Javascript
js显示时间 js显示最后修改时间
2013/01/02 Javascript
Blocksit插件实现瀑布流数据无限( 异步)加载
2014/06/20 Javascript
分析了一下JQuery中的extend方法实现原理
2015/02/27 Javascript
终于实现了!精彩的jquery弹幕效果
2016/07/18 Javascript
jquery实用技巧之输入框提示语句
2016/07/28 Javascript
解析js如何获取css样式
2016/12/11 Javascript
vue中实现methods一个方法调用另外一个方法
2018/02/08 Javascript
vue页面离开后执行函数的实例
2018/03/13 Javascript
原生javascript AJAX 三级联动的实现代码
2018/05/04 Javascript
Node.js中的child_process模块详解
2018/06/08 Javascript
微信小程序实现的日期午别医生排班表功能示例
2019/01/09 Javascript
微信小程序实现打开并下载服务器上面的pdf文件到手机
2019/09/20 Javascript
基于canvas实现手写签名(vue)
2020/05/21 Javascript
JavaScript实现网页留言板功能
2020/11/23 Javascript
[02:16]卖萌的僵尸 DOTA2神话信使飞僵小宝来袭
2014/03/24 DOTA
[01:32]dota2拉比克至宝(222)
2018/12/20 DOTA
Python爬取网页中的图片(搜狗图片)详解
2017/03/23 Python
python cx_Oracle的基础使用方法(连接和增删改查)
2017/11/19 Python
Python求两个圆的交点坐标或三个圆的交点坐标方法
2018/11/07 Python
Python基于mysql实现学生管理系统
2019/02/21 Python
Python基于机器学习方法实现的电影推荐系统实例详解
2019/06/25 Python
简单了解python的内存管理机制
2019/07/08 Python
Django框架 Pagination分页实现代码实例
2019/09/04 Python
Python 存取npy格式数据实例
2020/07/01 Python
Python制作运行进度条的实现效果(代码运行不无聊)
2021/02/24 Python
电教室标语
2014/06/20 职场文书
商场圣诞节活动总结
2015/05/06 职场文书
《彼得与狼》教学反思
2016/02/20 职场文书
2019年大学推荐信
2019/06/24 职场文书
Python实现视频中添加音频工具详解
2021/12/06 Python
Java实现简单小画板
2022/06/10 Java/Android