使用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 SHA-1:Secure Hash Algorithm
Dec 20 Javascript
javascript针对DOM的应用实例(一)
Apr 15 Javascript
JavaScript数据推送Comet技术详解
Apr 07 Javascript
js字符串截取函数slice、substring和substr的比较
May 17 Javascript
详解JavaScript中Hash Map映射结构的实现
May 21 Javascript
jQuery实现带遮罩层效果的blockUI弹出层示例【附demo源码下载】
Sep 14 Javascript
JS图片左右无缝隙滚动的实现(兼容IE,Firefox 遵循W3C标准)
Sep 23 Javascript
详解angularJS动态生成的页面中ng-click无效解决办法
Jun 19 Javascript
js用类封装pop弹窗组件
Oct 08 Javascript
js动态设置select下拉菜单的默认选中项实例
Aug 21 Javascript
vue添加class样式实例讲解
Feb 12 Javascript
详解nginx配置vue h5 history去除#号
Nov 09 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 强制下载文件实现代码
2013/10/28 PHP
php判断数组元素中是否存在某个字符串的方法
2014/06/14 PHP
php函数连续调用实例分析
2015/07/30 PHP
Smarty模板简单配置与使用方法示例
2016/05/23 PHP
一个可以随意添加多个序列的tag函数
2009/07/21 Javascript
javascript cookie操作类的实现代码小结附使用方法
2010/06/02 Javascript
多个表单中如何获得这个文件上传的网址实现js代码
2013/03/25 Javascript
Textarea根据内容自适应高度
2013/10/28 Javascript
jquery制作 随机弹跳的小球特效
2015/02/01 Javascript
jQuery中$.extend()用法实例
2015/06/24 Javascript
JavaScript Array对象详解
2016/03/01 Javascript
AngularJS实现textarea记录只能输入规定数量的字符并显示
2016/04/26 Javascript
ES6通过babel转码使用webpack使用import关键字
2016/12/13 Javascript
angularjs实现搜索的关键字在正文中高亮出来
2017/06/13 Javascript
Vue.js实现价格计算器功能
2020/03/30 Javascript
JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能
2018/02/06 Javascript
JS中offset和匀速动画详解
2018/02/06 Javascript
vue安装和使用scss及sass与scss的区别详解
2018/10/15 Javascript
微信小程序获取用户openid的实现
2018/12/24 Javascript
JS基于开关思想实现的数组去重功能【案例】
2019/02/18 Javascript
如何在Django中设置定时任务的方法示例
2019/01/18 Python
python中property属性的介绍及其应用详解
2019/08/29 Python
详解pyinstaller selenium python3 chrome打包问题
2019/10/18 Python
使用python快速实现不同机器间文件夹共享方式
2019/12/22 Python
CSS3 text shadow字体阴影效果
2016/01/08 HTML / CSS
JACK & JONES英国官方网站:欧洲领先的男装生产商
2017/09/27 全球购物
英国领先的电子、技术和办公用品购物网站:Ebuyer
2018/04/04 全球购物
初中数学教学反思
2014/01/16 职场文书
电子信息专业自荐书
2014/02/04 职场文书
共筑中国梦演讲稿
2014/04/23 职场文书
2015年企业新年寄语
2014/12/08 职场文书
教师个人年终总结
2015/02/11 职场文书
简爱读书笔记
2015/06/26 职场文书
装修公司管理制度
2015/08/05 职场文书
Python Numpy之linspace用法说明
2021/04/17 Python
DBCA命令行搭建Oracle ADG的流程
2021/06/11 Oracle