使用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 相关文章推荐
table对象中的insertRow与deleteRow使用示例
Jan 26 Javascript
按钮接受回车事件的三种实现方法
Jun 06 Javascript
angularjs指令中的compile与link函数详解
Dec 06 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
Oct 26 Javascript
jquery插件格式实例分析
Jun 16 Javascript
Bootstrap笔记—折叠实例代码
Mar 13 Javascript
EL表达式截取字符串的函数说明
Sep 22 Javascript
js前端导出Excel的方法
Nov 01 Javascript
vue项目首屏打开速度慢的解决方法
Mar 31 Javascript
node.js实现带进度条的多文件上传
Mar 27 Javascript
微信小程序 wx:for 与 wx:for-items 与 wx:key的正确用法
May 19 Javascript
用vue写一个日历
Nov 02 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操作JSON格式数据的实现代码
2011/12/24 PHP
PHP抽象类和接口用法实例详解
2019/07/20 PHP
Avengerls vs Newbee BO3 第一场2.18
2021/03/10 DOTA
javascript与CSS复习(二)
2010/06/29 Javascript
ExtJs GridPanel简单的增删改实现代码
2010/08/26 Javascript
js中关于String对象的replace使用详解
2011/05/24 Javascript
jQuery Ajax请求状态管理器打包
2012/05/03 Javascript
循环 vs 递归浅谈
2013/02/28 Javascript
js调用css属性写法
2013/09/21 Javascript
jquery对table中各数据的增加、保存、删除操作示例
2014/05/14 Javascript
JSON取值前判断
2014/12/23 Javascript
js文本框输入内容智能提示效果
2015/12/02 Javascript
AngularJs Understanding the Model Component
2016/09/02 Javascript
Javascript Function.prototype.bind详细分析
2016/12/29 Javascript
用JavaScript和jQuery实现瀑布流
2017/03/19 Javascript
JavaScript观察者模式(publish/subscribe)原理与实现方法
2017/03/30 Javascript
AngularJS的ng-click传参的方法
2017/06/19 Javascript
vue中的计算属性实例详解
2018/09/19 Javascript
JS实现提示效果弹出及延迟隐藏的功能
2019/08/26 Javascript
基于jquery ajax的多文件上传进度条过程解析
2019/09/11 jQuery
ES6中的Javascript解构的实现
2020/10/30 Javascript
[45:18]完美世界DOTA2联赛循环赛 PXG vs IO 第二场 11.06
2020/11/09 DOTA
Python中的迭代器漫谈
2015/02/03 Python
Python cookbook(数据结构与算法)将序列分解为单独变量的方法
2018/02/13 Python
基于python的ini配置文件操作工具类
2019/04/24 Python
python识别图像并提取文字的实现方法
2019/06/28 Python
Python中bisect的使用方法
2019/12/31 Python
python使用列表的最佳方案
2020/08/12 Python
HTML5实现锚点时请使用id取代name
2013/09/06 HTML / CSS
英国领先的珍珠首饰品牌:Orchira
2016/09/11 全球购物
一家外企的面试题目(C/C++面试题,C语言面试题)
2014/03/24 面试题
财务担保书范文
2014/04/02 职场文书
农业开发项目建议书
2014/05/16 职场文书
个人职业及收入证明
2014/10/13 职场文书
同意迁入证明模板
2014/10/26 职场文书
2015年清明节网上祭英烈活动总结
2015/03/26 职场文书